X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fplatform%2Fthreads.h;h=4161de3261b12d68d7c4c137dc923ab1281db404;hb=13fd6a6619b36bef2df2a126455f83776cc991b4;hp=9ba273c9970662cb0225fb8f5ba27f141b3e552a;hpb=25701fa60407a0fc0bc1dfcd4049fc01ad9e4fd1;p=deb_libcec.git diff --git a/src/lib/platform/threads.h b/src/lib/platform/threads.h index 9ba273c..4161de3 100644 --- a/src/lib/platform/threads.h +++ b/src/lib/platform/threads.h @@ -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; }; };