servicemp3.cpp: more simple/flexible streaming detection
[enigma2.git] / lib / base / thread.h
index dad8042..8ee9659 100644 (file)
@@ -29,6 +29,11 @@ public:
        eThread();
        virtual ~eThread();
 
        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.
                /* 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();
                /* 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);
 
                /* 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);
        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;
        static void thread_completed(void *p);
 
        eSemaphore m_state;