blob: 3074088874c9083ca02f990612bb373da243c5a3 [file] [log] [blame]
#include <cc++/thread.h>
#include <cstdio>
#include <cstring>
#include <iostream>
#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;
}