X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fplatform%2Fposix%2Fos-threads.h;h=5216ffe7793ac40bea9c28bf93ffbb6e7cba986b;hb=ed63a5152ee6f0283fd32d1e304df9e7c7dd03e5;hp=48e1e355ca16e8ee18965852cda41bfd48329c63;hpb=97cd34d8145e0cecf05e7a348b2a37614f2a9060;p=deb_libcec.git diff --git a/src/lib/platform/posix/os-threads.h b/src/lib/platform/posix/os-threads.h index 48e1e35..5216ffe 100644 --- a/src/lib/platform/posix/os-threads.h +++ b/src/lib/platform/posix/os-threads.h @@ -92,17 +92,22 @@ namespace PLATFORM pthread_cond_broadcast(&m_condition); } - bool Wait(mutex_t &mutex, uint32_t iTimeoutMs) + bool Wait(mutex_t &mutex) { sched_yield(); - if (iTimeoutMs > 0) - { - struct timespec timeout = GetAbsTime(iTimeoutMs); - return (pthread_cond_timedwait(&m_condition, &mutex, &timeout) == 0); - } return (pthread_cond_wait(&m_condition, &mutex) == 0); } + bool Wait(mutex_t &mutex, uint32_t iTimeoutMs) + { + if (iTimeoutMs == 0) + return Wait(mutex); + + sched_yield(); + struct timespec timeout = GetAbsTime(iTimeoutMs); + return (pthread_cond_timedwait(&m_condition, &mutex, &timeout) == 0); + } + pthread_cond_t m_condition; }; }