условная переменная — C ++ условие_вариабельного и ложного пробуждения

Я заинтересован в использовании condition_variable синхронизировать два потока (A и B), которые не разделяют данные.
Хорошее решение, которое я нашел в интернете, следующее.

class WaitableCondition

Я нашел это здесь:
Бумажная ссылка

Проблема в двух фрагментах кода, за которыми следует первый.

   void WaitUntilTrue (void)
{
std::unique_lock<std::mutex> uLock(m_mutex);
m_conditionVar.wait(uLock,[&]{return m_condIsTrue}); //<==== ?????
if (m_autoReset) m_condIsTrue = false;
}

Происходит ли ложное пробуждение в строке с комментарием со знаком вопроса?

Тот же вопрос относится к следующему строковому коду:

if (m_conditionVar.wait_for(uLock, timeoutPeriod, [&] {return m_condIsTrue;}))
....

Спасибо

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]