Re: C++11: Синхронизация - Условные переменные и ложные пробужде
От: se_sss  
Дата: 08.04.15 18:31
Оценка:
_>Интересует собственно сабж — откуда берутся эти самые "ложные пробуждения" ?
_>П.С.: Ссылки на соответствующие учёные книги приветствуются.

Ухх! Что-то я про такое и не помнил, хотая документацию Java по wait() читал и там про это написано.
Спасибо.

Возник вопрос не по совсем теме, но всё же связанный с ней.
Сейчас нашёл разъяснение для Linux, состоящее в том, что если идёт блокирующией вызов и приходит сигнал, то вызов прерывается:
http://blog.vladimirprus.com/2005/07/spurious-wakeups.html


Потом вышел на такую страничку(правда немножко не по теме):
http://www.gnu.org/software/libc/manual/html_node/Interrupted-Primitives.html

Здесь предлагают проверять errno на равенство EINTR.

В связи с этой страничкой возник вопрос. А что если у нас несколько потоков? В каком из них ошибка произошла?
errno ведь глобальная переменная?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.