*/
#include "os-dependent.h"
+#include <stdint.h>
namespace CEC
{
CCondition(void);
virtual ~CCondition(void);
+ void Broadcast(void);
void Signal(void);
bool Wait(CMutex *mutex, int64_t iTimeout);
- static void Sleep(int iTimeout);
+ static void Sleep(int64_t iTimeout);
private:
pthread_cond_t m_cond;
virtual bool IsRunning(void) const { return m_bRunning; }
virtual bool CreateThread(void);
- virtual void StopThread(bool bWaitForExit = true);
+ virtual bool StopThread(bool bWaitForExit = true);
+ virtual bool Sleep(uint64_t iTimeout);
static void *ThreadHandler(CThread *thread);
virtual void *Process(void) = 0;
protected:
- pthread_t m_thread;
- bool m_bRunning;
- bool m_bStop;
+ pthread_t m_thread;
+ CMutex m_threadMutex;
+ CCondition m_threadCondition;
+ bool m_bRunning;
+ bool m_bStop;
};
};