2011-12-20 6 views
-1

可能性の重複:私のアプリケーションで
Interprocess semaphores sometimes not working as expectedセマフォ予想外に設定するばかり

は、私が sem_tタイプのセマフォが時々sem_postを実行せずに0から1になることに注意してください。どうして?何が原因でしょうか?セマフォーはプロセス間通信に使用され、コードhereを見ることができます。

+1

うわー、私は@MichaelBurrがすでに同じ質問に答えていることに気づいている。フォローアップの質問をする前に、人々があなたに話すことを最初に統合することができればいいですね。 –

答えて

2

リンク先のコードは、sem_tコールの戻り値を取得しません。マニュアルを見ると、例えばsem_waitが早すぎる、いわゆる偽のウェークアップを返すことがわかります。

これらの機能のリターンコードは、常に確認してください。戻り値が-1の場合、対応するエラーのためにerrnoをチェックし、一時的なエラーであるかどうかを判断します。その場合は、繰り返します。

関連する問題