シグナルシーケンス:SIGPOLLおよびSIGCHLD

シグナルシーケンス:SIGPOLLおよびSIGCHLD

子プロセスを作成し、パイプを使用して接続します。

SIGPOLL利用可能なデータを転送するようにパイプラインを設定しましたfcntl I_SETSIG

子プロセスはパイプを介していくつかのデータを送信し、終了します。

SIGPOLLその前に受け取れるかどうか確信できますかSIGCHLD? (またはこの場合、SIGCHLD信号はまったく受信されない可能性がSIGPOLLあります。2つの信号を受信すると順序を決定できますか?)

私はFreeBSDでPerlを使用していますが、この問題はすべてのUnixプラットフォームに拡張されています。

ベストアンサー1

このデザインには競争条件が記録されています。シグナルが順番に転送されるのか、まったく転送されるのかはわかりません。 Perlを使用すると、さらに不確実になります。

データが受信されたことを親が子供に確認できるように再設計されました。信号の順序と量は信頼できず、ポータブルソリューションを必要とすることはより絶望的です。

おすすめ記事