X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/e51726bcb1904bf8422b62798bd9f0cd2efb53ad..HEAD:/lib/base/thread.h?ds=inline diff --git a/lib/base/thread.h b/lib/base/thread.h index dad80424..8ee96594 100644 --- a/lib/base/thread.h +++ b/lib/base/thread.h @@ -29,6 +29,11 @@ public: 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. @@ -46,7 +51,7 @@ public: /* 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); @@ -54,7 +59,7 @@ private: 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;