#include #include #include using namespace std; _Event Stop{}; 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); w->result.exception(new Stop()); delete w; } }; int main() { Server server; int val = 6; Future_ISM fval; try { fval = server.perform( val ); yield(100); cout << fval() << endl; } catch (Stop) { cout << "stop" << endl; } }