自動リセットイベントを待機して開放されるスレッドの数はちょうどひとつ

同僚が IRC で疑問を投げていたので気になって再調査。

CreateEvent Function (Windows) の bManualReset 変数の説明にきちんと書かれていた。

If this parameter is FALSE, the function creates an auto-reset event object, and system automatically resets the event state to nonsignaled after a single waiting thread has been released.

この変数が FALSE なら、本関数は自動リセットイベントオブジェクトを生成する。そしてシステムは待機中のスレッドをひとつ開放した後で、自動的にイベント状態を非シグナル状態にリセットする。


以前調べて、明記されていなかった気がしたのだけれど、それはマニュアルリセットのときにリリースされるスレッドの数だったんだなきっと。