thread.cpp revision ba4014339471126ca90af5a5ec7a1ee10ad6c15b
1#include <pthread.h> 2#include <thread.h> 3 4Thread::Thread() 5{ 6 r = NULL; 7} 8 9Thread::Thread(RunnableInterface *r) 10{ 11 this->r = r; 12} 13 14Thread::~Thread() 15{ 16 Join(); 17} 18 19int Thread::Start(void) 20{ 21 return pthread_create(&id, NULL, Instance, this); 22} 23 24int Thread::Join(void) 25{ 26 return pthread_join(id, NULL); 27} 28 29void *Thread::Instance(void *p) 30{ 31 Thread *t = static_cast<Thread *>(p); 32 33 t->Run(); 34 35 return NULL; 36} 37 38void Thread::Run(void) 39{ 40 if (r) 41 r->Run(); 42 else 43 return; 44} 45