子プロセスを作成し、パイプを使用して接続します。
SIGPOLL
利用可能なデータを転送するようにパイプラインを設定しましたfcntl
I_SETSIG
。
子プロセスはパイプを介していくつかのデータを送信し、終了します。
SIGPOLL
その前に受け取れるかどうか確信できますかSIGCHLD
? (またはこの場合、SIGCHLD
信号はまったく受信されない可能性がSIGPOLL
あります。2つの信号を受信すると順序を決定できますか?)
私はFreeBSDでPerlを使用していますが、この問題はすべてのUnixプラットフォームに拡張されています。
ベストアンサー1
このデザインには競争条件が記録されています。シグナルが順番に転送されるのか、まったく転送されるのかはわかりません。 Perlを使用すると、さらに不確実になります。
データが受信されたことを親が子供に確認できるように再設計されました。信号の順序と量は信頼できず、ポータブルソリューションを必要とすることはより絶望的です。