Revert "platform: added predicate in CCondition"
authorLars Op den Kamp <lars@opdenkamp.eu>
Sat, 11 Feb 2012 17:55:28 +0000 (18:55 +0100)
committerLars Op den Kamp <lars@opdenkamp.eu>
Sat, 11 Feb 2012 17:55:28 +0000 (18:55 +0100)
This reverts commit 41c655b6ba019bd5c342be9fcfa8c34fad0178ef.

.gitignore
src/lib/platform/threads/mutex.h
src/lib/platform/util/timeutils.h

index 547aa5f6cb3c14aa83cb5e43c972554fe51d2147..a53524340f8163137cc2556f26ee51f6acdadd56 100644 (file)
@@ -73,9 +73,6 @@ src/CecSharpTester/bin
 src/CecSharpTester/obj
 
 src/cec-config-gui/obj
-src/cec-config/.deps/
-src/cec-config/cec-config
-src/cec-config/*.o
 
 src/libcec-wmc/bin
 src/libcec-wmc/obj
index bb4e006e331b373dfacd585eb682e53e5f47f697..e8481012773e428561c0e1f7c7652117926aa421 100644 (file)
@@ -39,8 +39,6 @@
 #include "../posix/os-threads.h"
 #endif
 
-#include "../util/timeutils.h"
-
 namespace PLATFORM
 {
   class PreventCopy
@@ -226,46 +224,25 @@ namespace PLATFORM
   class CCondition : public PreventCopy
   {
   public:
-    inline CCondition(void) :
-      m_bPredicate(false),
-      m_iWaitingThreads(0) {}
+    inline CCondition(void) {}
     inline ~CCondition(void)
     {
-      Broadcast();
+      m_condition.Broadcast();
     }
 
-    void Broadcast(void)
+    inline void Broadcast(void)
     {
-      Set(true);
       m_condition.Broadcast();
     }
 
-    void Signal(void)
+    inline void Signal(void)
     {
-      Set(false);
       m_condition.Signal();
     }
 
-    bool Wait(CMutex &mutex, uint32_t iTimeout = 0)
+    inline bool Wait(CMutex &mutex, uint32_t iTimeout = 0)
     {
-      {
-        CLockObject lock(m_mutex);
-        ++m_iWaitingThreads;
-      }
-
-      if (iTimeout > 0)
-      {
-        CTimeout timeout(iTimeout);
-        while (!m_bPredicate && timeout.TimeLeft() > 0)
-          m_condition.Wait(mutex.m_mutex, timeout.TimeLeft());
-      }
-      else
-      {
-        while (!m_bPredicate)
-          m_condition.Wait(mutex.m_mutex, 0);
-      }
-
-      return ResetAndReturn();
+      return m_condition.Wait(mutex.m_mutex, iTimeout);
     }
 
     static void Sleep(uint32_t iTimeout)
@@ -277,26 +254,6 @@ namespace PLATFORM
     }
 
   private:
-    void Set(bool bBroadcast = false)
-    {
-      CLockObject lock(m_mutex);
-      m_bPredicate = true;
-      m_bBroadcast = bBroadcast;
-    }
-
-    bool ResetAndReturn(void)
-    {
-      CLockObject lock(m_mutex);
-      bool bReturn(m_bPredicate);
-      if (bReturn && (--m_iWaitingThreads == 0 || !m_bBroadcast))
-        m_bPredicate = false;
-      return bReturn;
-    }
-
-    CMutex         m_mutex;
     CConditionImpl m_condition;
-    volatile bool  m_bPredicate;
-    volatile bool  m_bBroadcast;
-    unsigned int   m_iWaitingThreads;
   };
 }
index 367c80bbbc3c1db707046e2efec38f4d1a3f9b6d..d2992e75d0d46bebefe4e50741cae358ecbe1865 100644 (file)
@@ -103,20 +103,4 @@ namespace PLATFORM
   {
     return (T)GetTimeMs() / (T)1000.0;
   }
-
-  class CTimeout
-  {
-  public:
-    CTimeout(uint32_t iTime) :
-      m_iTarget(GetTimeMs() + iTime) {}
-
-    uint64_t TimeLeft(void) const
-    {
-      uint64_t iNow = GetTimeMs();
-      return (iNow > m_iTarget) ? 0 : m_iTarget - iNow;
-    }
-
-  private:
-    uint64_t m_iTarget;
-  };
 };