X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Futil%2Fthreads.cpp;h=3e40c2ba0370288cb668662514a91f52b3f10405;hb=f99bc83187bb0daa81bc58a4559ff9832a8dad9f;hp=3bfc1bd75e0cbb96f81f1a99a62836ea4f65490d;hpb=c49c485b94c3670438d329c15f4a785609a126f6;p=deb_libcec.git diff --git a/src/lib/util/threads.cpp b/src/lib/util/threads.cpp index 3bfc1bd..3e40c2b 100644 --- a/src/lib/util/threads.cpp +++ b/src/lib/util/threads.cpp @@ -115,6 +115,8 @@ bool CCondition::Wait(CMutex *mutex, int64_t iTimeout) abstime.tv_sec = now.tv_sec + (time_t)(iTimeout / 1000); abstime.tv_nsec = (long)((iTimeout % (unsigned long)1000) * (unsigned long)1000000); m_bSignaled = (pthread_cond_timedwait(&m_cond, &mutex->m_mutex, &abstime) == 0); + if (!m_bSignaled) + pthread_mutex_unlock(&mutex->m_mutex); } bool bReturn = m_bSignaled;