#include #include #include using namespace std; struct Work { int i; Future_ISM result; Work( int i ) : i(i) {} }; _Task Server { queue requests; public: Future_ISM perform( int i ) { Work *w = new Work( i ); requests.push( w ); return w->result; } Server() {} private: void main() { if ( requests.empty() ) _Accept( perform ); Work *w = requests.front(); requests.pop(); int r = 5; w->result.delivery(r); delete w; } }; int main() { Server server; int val = 6; Future_ISM fval; fval = server.perform( val ); cout << fval() << endl; }