// // Tony Givargis // #include #include "thread.h" //----------------------------------------------------------------------------- void* __virtualizer__ (void* arg) { ((Thread*)arg)->Run(); return 0; } //----------------------------------------------------------------------------- Thread::Thread() { pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); } //----------------------------------------------------------------------------- Thread::~Thread() { assert( pthread_attr_destroy(&attr) == 0 ); } //----------------------------------------------------------------------------- void Thread::Start() { pthread_create(&thread, &attr, __virtualizer__, (void*)this); } //----------------------------------------------------------------------------- void Thread::Stop() { assert( pthread_cancel(thread) == 0 ); } //----------------------------------------------------------------------------- void Thread::Join() { assert( pthread_join(thread, 0) == 0 ); } //----------------------------------------------------------------------------- void Thread::Run() { }