- CTimeout timeout(iTimeout);
- uint32_t iMsLeft(0);
- bReturn = false;
- while (!bReturn)
- {
- iMsLeft = timeout.TimeLeft();
- if ((bReturn = iMsLeft == 0 || predicate) == false)
- m_condition.Wait(mutex.m_mutex, iMsLeft);
- }
+ iMsLeft = timeout.TimeLeft();
+ if ((bReturn = predicate) == false && (bBreak = iMsLeft == 0) == false)
+ m_condition.Wait(mutex.m_mutex, iMsLeft);