Что возвращает boost::condition_variable::timed_wait() при ложных пробуждениях?
Бустерная документация гласит:
Возвращает: false, если вызов возвращается, потому что время, указанное в abs_time, было достигнуто, в противном случае - true.
Но что возвращается, если происходит ложное пробуждение?
1 ответ
Решение
Если бы условная переменная могла понять, что это ложное пробуждение, возвращать ее не нужно, не так ли?
Вам необходимо проверить, изменились ли данные, защищенные мьютексом и переменной условия, чтобы обнаружить ложное пробуждение. Условная переменная не может сделать это за вас.