「セマフォへのオープン参照がない」場合セマフォ名が削除されます(*)は、sem_unlink()はセマフォ
- 1)どのようなこれらの「参照」はあるの名前を削除します?
- 2)関連するプロセスを特定するためにこれらのリファレンスを照会できますか?
同じ節では、「セマフォへのオープンな参照がない場合、破壊されます。さもなければ、破棄は最後に開いた参照が閉じられるまで延期されます。 これは、OSがセマフォを破壊することができるまで、これらの参照をクエリし続けることを意味します。 これらの「参照」はセマフォの値よりも多くありますか?
(*)W.R。 Stevens、S.A. Rago「UNIX環境における高度なプログラミング」、第3版、p。 581.
ご返信ありがとうございます。 プロセスが順序外のsem_post()を実行すると、保留中のプロセスが誤って実行される可能性がありますか? – ovi
@oviアーキテクチャレベルの実装について心配する必要はありません。 POSIX [定義された振る舞い]仕様に従うならば、すべてが期待通りに動作しなければなりません。 – pah
私の質問は、私のアプリケーションが直面している実際の状況の結果です。ユーザーが誘導する非同期イベントは、壊れた待機ポストを引き起こします。これをクリーンアップしようとすると、外部プロセスは無条件にセマフォのリンクを解除して削除する方法が必要です。私は(恣意的に)10回の呼び出しを '投稿'に入れてリンクを解除するクリーンアッププロセスを実装しようとしました。それは機能しているようです。私はちょうど私のソリューションが、brute力が有効である/法的であることを確認したい。 – ovi