X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fplatform%2Fthreads.h;h=4161de3261b12d68d7c4c137dc923ab1281db404;hb=403398523c7fbae86cbc527473ea54d78bb3d763;hp=8b0729db4cf045dccbf3f1bf6777b5d33f6e0df2;hpb=5559c36e3d98fa45d9731b843e60b4531a3a148a;p=deb_libcec.git diff --git a/src/lib/platform/threads.h b/src/lib/platform/threads.h index 8b0729d..4161de3 100644 --- a/src/lib/platform/threads.h +++ b/src/lib/platform/threads.h @@ -46,8 +46,8 @@ namespace CEC void Broadcast(void); void Signal(void); - bool Wait(CMutex *mutex, int64_t iTimeout); - static void Sleep(int64_t iTimeout); + bool Wait(CMutex *mutex, uint32_t iTimeout = 0); + static void Sleep(uint32_t iTimeout); private: pthread_cond_t m_cond; @@ -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 Sleep(uint64_t iTimeout); + 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; }; };