eThread();
virtual ~eThread();
+ /* thread_finished is called from within the thread context as the last function
+ before the thread is going to die.
+ It should be used to do final cleanups (unlock locked mutexes ....) */
+ virtual void thread_finished() {}
+
/* runAsync starts the thread.
it assumes that the thread is not running,
i.e. sync() *must* return 0.
/* result: 0 - thread is not alive
1 - thread state unknown */
int sync();
- void sendSignal(int sig);
+ int sendSignal(int sig);
/* join the thread, i.e. busywait until thread has finnished. */
void kill(bool sendcancel=false);
pthread_t the_thread;
static void *wrapper(void *ptr);
- int m_alive;
+ int m_alive, m_started;
static void thread_completed(void *p);
eSemaphore m_state;