Как можно реализовать условную переменную с использованием семафоров?

Некоторое время назад я думал о том, как реализовать различные примитивы синхронизации в терминах друг друга. Например, в pthreads вы получаете мьютексы и условные переменные, и из них можно создавать семафоры.

В Windows API (или, по крайней мере, в более старых версиях Windows API) есть мьютексы и семафоры, но нет переменных условий. Я думаю, что должна быть возможность создавать переменные условия из мьютексов и семафоров, но, хоть убей, я просто не могу придумать, как это сделать.

Кто-нибудь знает хорошую конструкцию для этого?

7
задан GEOCHET 7 August 2015 в 14:44
поделиться