ReleaseMutex()
Microsoft のドキュメントは、ミューテックスが既にロック解除されているときに誤って呼び出すとどうなるかについて沈黙しています。
詳細:
コンパイラにアクセスせずに Windows コードを修正しようとしています。
WinApi ミューテックスはすべて再帰的であり、参照カウントされることを認識しています。私がその機能を利用していた場合、余分なReleaseMutex()
呼び出しによって参照カウンターが時期尚早にデクリメントされることは明らかです。
ただし、私が見ているコードはミューテックスを再帰的に使用していないため、参照カウントが「1」より大きくなることはありません。必要以上にミューテックスを解放します...どうなりますか?参照カウントは負になりますか? ゼロ (ロック解除) のままで、無視できるエラーを返すだけですか?
(当然、このコードはこれらの関数を呼び出すときに実際にエラーをチェックしません!)