repositories
/
deb_libcec.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cec: added the vendor id for Sony
[deb_libcec.git]
/
src
/
lib
/
platform
/
threads.h
diff --git
a/src/lib/platform/threads.h
b/src/lib/platform/threads.h
index 4ae5ac72557433464e96236e9821aee8ba414561..a258081ccef8bbdf6a5bc8f33826fbaf26ae6c84 100644
(file)
--- a/
src/lib/platform/threads.h
+++ b/
src/lib/platform/threads.h
@@
-32,6
+32,7
@@
*/
#include "os-dependent.h"
*/
#include "os-dependent.h"
+#include <stdint.h>
namespace CEC
{
namespace CEC
{
@@
-43,9
+44,10
@@
namespace CEC
CCondition(void);
virtual ~CCondition(void);
CCondition(void);
virtual ~CCondition(void);
+ void Broadcast(void);
void Signal(void);
void Signal(void);
- bool Wait(CMutex *mutex,
int64_t iTimeout
);
- static void Sleep(
in
t iTimeout);
+ bool Wait(CMutex *mutex,
uint32_t iTimeout = 0
);
+ static void Sleep(
uint32_
t iTimeout);
private:
pthread_cond_t m_cond;
private:
pthread_cond_t m_cond;
@@
-54,7
+56,7
@@
namespace CEC
class CMutex
{
public:
class CMutex
{
public:
- CMutex(
void
);
+ CMutex(
bool bRecursive = true
);
virtual ~CMutex(void);
bool TryLock(void);
virtual ~CMutex(void);
bool TryLock(void);
@@
-62,12
+64,15
@@
namespace CEC
void Unlock(void);
pthread_mutex_t m_mutex;
void Unlock(void);
pthread_mutex_t m_mutex;
+
+ private:
+ static pthread_mutexattr_t *GetMutexAttribute();
};
class CLockObject
{
public:
};
class CLockObject
{
public:
- CLockObject(CMutex *mutex);
+ CLockObject(CMutex *mutex
, bool bTryLock = false
);
~CLockObject(void);
bool IsLocked(void) const { return m_bLocked; }
~CLockObject(void);
bool IsLocked(void) const { return m_bLocked; }
@@
-86,15
+91,21
@@
namespace CEC
virtual ~CThread(void);
virtual bool IsRunning(void) const { return m_bRunning; }
virtual ~CThread(void);
virtual bool IsRunning(void) const { return m_bRunning; }
- virtual bool CreateThread(void);
- virtual void StopThread(bool bWaitForExit = true);
+ 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:
static void *ThreadHandler(CThread *thread);
virtual void *Process(void) = 0;
protected:
- pthread_t m_thread;
- bool m_bRunning;
- bool m_bStop;
+ CCondition m_threadCondition;
+
+ private:
+ pthread_t m_thread;
+ CMutex m_threadMutex;
+ bool m_bStop;
+ bool m_bRunning;
};
};
};
};