platform: added CCondition::Wait() without a timeout for windows. fixes compilation...
[deb_libcec.git] / src / lib / platform / windows / os-threads.h
index 52bd4bc11ab946b3018bd522b01b64b0ace7cd9b..e082691e24582b1afb6208488d8aa8118ecf8680 100644 (file)
@@ -116,17 +116,36 @@ namespace PLATFORM
         ::SetEvent(m_conditionPreVista);
     }
 
+    bool Wait(mutex_t &mutex)
+    {
+      if (m_bOnVista)
+      {
+        return ((*g_SleepConditionVariableCS)(m_conditionVista, mutex, INFINITE) ? true : false);
+      }
+      else
+      {
+        ::ResetEvent(m_conditionPreVista);
+        MutexUnlock(mutex);
+        DWORD iWaitReturn = ::WaitForSingleObject(m_conditionPreVista, 1000);
+        MutexLock(mutex);
+        return (iWaitReturn == 0);
+      }
+    }
+
     bool Wait(mutex_t &mutex, uint32_t iTimeoutMs)
     {
+      if (iTimeoutMs == 0)
+        return Wait(mutex);
+
       if (m_bOnVista)
       {
-        return ((*g_SleepConditionVariableCS)(m_conditionVista, mutex, iTimeoutMs <= 0 ? INFINITE : iTimeoutMs) ? true : false);
+        return ((*g_SleepConditionVariableCS)(m_conditionVista, mutex, iTimeoutMs) ? true : false);
       }
       else
       {
         ::ResetEvent(m_conditionPreVista);
         MutexUnlock(mutex);
-        DWORD iWaitReturn = ::WaitForSingleObject(m_conditionPreVista, iTimeoutMs <= 0 ? 1000 : iTimeoutMs);
+        DWORD iWaitReturn = ::WaitForSingleObject(m_conditionPreVista, iTimeoutMs);
         MutexLock(mutex);
         return (iWaitReturn == 0);
       }