1 #include "../../include/pthreadwrapper/thread.h"
\r
3 #include <sys/timeb.h>
\r
19 Thread::Thread(Runnable *runnable)
\r
23 m_runnable=runnable;
\r
26 m_runnable->m_thread=this;
\r
41 void Thread::Cancel()
\r
49 void *Thread::EntryPoint(void *pthis)
\r
53 ((Thread *)pthis)->m_runnable->Run();
\r
54 ((Thread *)pthis)->m_running=false;
\r
55 ((Thread *)pthis)->m_cancelled=false;
\r
64 pthread_join(m_thread,NULL);
\r
68 void Thread::Sleep(const long ms)
\r
77 pthread_mutex_init(&m,NULL);
\r
78 pthread_cond_init(&c,NULL);
\r
82 t.tv_sec=tb.time+(ms/1000);
\r
83 t.tv_nsec=((1000000L)*(long)tb.millitm)+((1000000L)*(ms%1000));
\r
85 pthread_mutex_lock(&m);
\r
86 pthread_cond_timedwait(&c,&m,&t);
\r
87 pthread_mutex_unlock(&m);
\r
91 void Thread::Start()
\r
94 pthread_create(&m_thread,NULL,Thread::EntryPoint,this);
\r