Я заинтересован в использовании 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;}))
....
Спасибо
Задача ещё не решена.
Других решений пока нет …