Что возвращает boost::condition_variable::timed_wait() при ложных пробуждениях?

Бустерная документация гласит:

Возвращает: false, если вызов возвращается, потому что время, указанное в abs_time, было достигнуто, в противном случае - true.

Но что возвращается, если происходит ложное пробуждение?

1 ответ

Решение

Если бы условная переменная могла понять, что это ложное пробуждение, возвращать ее не нужно, не так ли?

Вам необходимо проверить, изменились ли данные, защищенные мьютексом и переменной условия, чтобы обнаружить ложное пробуждение. Условная переменная не может сделать это за вас.

Другие вопросы по тегам