Тут на форуме, лет 5 назад, проскакивала тема про condition variables и ложные срабатывания. Помню была ярая дискуссия про то, почему они возникают. Была просто куча версий и помню, что даже один человек написал что-то разумное про lock-free хеш-таблицу, но как-то дальше все сумбурно было. Нечаянно натолкнулся на
статью от Microsoft, о том почему это происходит, где, на мой взгляд, эта особенность наиболее понятно описана.
Заодно, те кто в танке, могут узнать о мощьнейшем-новейшем объекте ожидания от Microsoft —
WaitOnAddress. Может кто-то очень хочет создать "халявные" 1М объектов синхронизации на процесс без использования ресурсов ядра и не знает как это сделать
. Правда если их все поставить одновременно на ожидание, думаю ядро сильно удивится. С другой стороны на это нужно будет 1М потоков, так что наверное это не реально.
P.S. Заранее извиняюсь если я зря опять откопал стюардессу.