cec: don't reset the "adapter message sent" event
[deb_libcec.git] / src / lib / platform / threads / mutex.h
index 11e3606d09250e5d715eb116ad2a3d2ca939117a..5a9ae135ee9858548c937b2faf395224fa44d7bb 100644 (file)
@@ -261,7 +261,7 @@ namespace PLATFORM
         if (!predicate)
         {
           CTimeout timeout(iTimeout);
-          uint64_t iMsLeft(0);
+          uint32_t iMsLeft(0);
           bReturn = false;
           while (!bReturn)
           {
@@ -280,10 +280,11 @@ namespace PLATFORM
   class CEvent
   {
   public:
-    CEvent(void) :
+    CEvent(bool bAutoReset = true) :
       m_bSignaled(false),
       m_bBroadcast(false),
-      m_iWaitingThreads(0) {}
+      m_iWaitingThreads(0),
+      m_bAutoReset(bAutoReset) {}
     virtual ~CEvent(void) {}
 
     void Broadcast(void)
@@ -336,7 +337,7 @@ namespace PLATFORM
     {
       CLockObject lock(m_mutex);
       bool bReturn(m_bSignaled);
-      if (bReturn && (--m_iWaitingThreads == 0 || !m_bBroadcast))
+      if (bReturn && (--m_iWaitingThreads == 0 || !m_bBroadcast) && m_bAutoReset)
         m_bSignaled = false;
       return bReturn;
     }
@@ -346,5 +347,6 @@ namespace PLATFORM
     CMutex                     m_mutex;
     volatile bool              m_bBroadcast;
     unsigned int               m_iWaitingThreads;
+    bool                       m_bAutoReset;
   };
 }