pthread ミューテックス用の C/C++ ラッパーを提供するコードを調べていました。コードは、シグナル状態/非シグナル状態のシャドウ変数を保持します。このコードは、pthread_mutex_lock
や などpthread_mutex_trylock
の関数からの戻り値も無視するため、シャドウ変数はミューテックスの状態を正確に反映しない場合があります (マイナーな競合状態は無視されます)。
pthread はミューテックスの状態を照会する方法を提供しますか? pthread APIをざっと読んでも、それが提供されているようには見えません。で動作する興味深いものも見当たりませんpthread_mutexattr_t
。
それとも、 を使用しtrylock
、依存しEBUSY
、取得した場合は所有権を放棄する必要がありますか?
前もって感謝します。