#include #include #include #include #ifdef CCXX_NAMESPACES using namespace std; using namespace ost; #endif // Test if cancellation unwinds stack frame // class myObject { public: myObject() {cout << "created auto object on stack" << endl;}; ~myObject() {cout << "destroyed auto object on cancel" << endl;}; }; class myThread: public Thread { public: myThread() : Thread() {}; void run(void) { myObject obj; setCancel(cancelImmediate); Thread::sleep(TIMEOUT_INF); } ~myThread() {cout << "ending thread" << endl;}; }; int main(int argc, char* argv[]) { cout << "starting thread" << endl; myThread *th = new myThread(); th->start(); Thread::sleep(1000); // 1 second delete th; // delete to join return 0; }