cec: removed dupe m_bRunning properties. wait until a thread is started before return...
[deb_libcec.git] / src / lib / platform / threads.h
index 9ba273c9970662cb0225fb8f5ba27f141b3e552a..4161de3261b12d68d7c4c137dc923ab1281db404 100644 (file)
@@ -46,7 +46,7 @@ namespace CEC
 
     void Broadcast(void);
     void Signal(void);
-    bool Wait(CMutex *mutex, uint32_t iTimeout);
+    bool Wait(CMutex *mutex, uint32_t iTimeout = 0);
     static void Sleep(uint32_t iTimeout);
 
   private:
@@ -69,7 +69,7 @@ namespace CEC
   class CLockObject
   {
   public:
-    CLockObject(CMutex *mutex);
+    CLockObject(CMutex *mutex, bool bTryLock = false);
     ~CLockObject(void);
 
     bool IsLocked(void) const { return m_bLocked; }
@@ -88,18 +88,21 @@ namespace CEC
     virtual ~CThread(void);
 
     virtual bool IsRunning(void) const { return m_bRunning; }
-    virtual bool CreateThread(void);
+    virtual bool CreateThread(bool bWait = true);
     virtual bool StopThread(bool bWaitForExit = true);
+    virtual bool IsStopped(void) const { return m_bStop; };
     virtual bool Sleep(uint32_t iTimeout);
 
     static void *ThreadHandler(CThread *thread);
     virtual void *Process(void) = 0;
 
   protected:
+    CCondition m_threadCondition;
+
+  private:
     pthread_t  m_thread;
     CMutex     m_threadMutex;
-    CCondition m_threadCondition;
-    bool       m_bRunning;
     bool       m_bStop;
+    bool       m_bRunning;
   };
 };