Там-сям, почитывая
форум по мультитредному программированию, собрал некоторые идеи по расширению функциональности стандартных синхронизационных примитивов. Большинство, кажется, принадлежат Alexander Terekhov-у. Воспроизвожу я всё по памяти и могу что-то где-то и напутать.
Для семафора или мютекса имеет смысл введение операции
bool Semaphore::TryToRelease();
которая освобождает семафор в том и только в том случае, когда его кто-то ждет. Возращаемое значение, естественно, помогает выяснить, был освобожден семафор или нет.
Другая идея
( Read more... )