BeOS プログラマーだった頃、 Benoit Schillings によるこの記事を読み、「ベナフォア」を作成する方法を説明しました: アトミック変数を使用して、共通のミューテックスを取得/解放する必要を回避するクリティカル セクションを強制する方法 (競合なし) ケース。
私はそれがかなり賢いと思いました.atomic-increment/decrementをサポートするどのプラットフォームでも同じトリックを行うことができるようです.
一方、これは標準のミューテックス実装自体に簡単に含めることができるもののように見えます...その場合、私のプログラムでこのロジックを実装することは冗長であり、何の利点もありません.
最新のロック API (pthread_mutex_lock()/pthread_mutex_unlock() など) がこのトリックを内部的に使用しているかどうかを知っている人はいますか? もしそうでなければ、なぜですか?