特定の数の子プロセスを生成する親プロセスがあります。これらの子プロセスは何らかの作業を行い、プロセス間メッセージ キューを介して結果を含むメッセージを親プロセスに送信します。ただし、親プロセスがメッセージが適切に受信および処理されたという確認応答を送信するのを子プロセスが待機し、親プロセスからそのようなシグナルを受信した後にのみ終了することも望んでいます。
現在、コードは多かれ少なかれ次のようになっています。
parent child
spawn process
wait for message do processing
send message
receive message wait on condvar
save the message
notify the condvar resume execution
wait for child termination terminate
もちろん、子が condvar を待ち始める前に親が condvar を実行すると、デッドロックが発生します。その場合、親はnotify
子が終了するのを待ち、子は condvar のシグナルを待ちます。条件変数。
だから、私の質問は、子が常にwait
最初に、つまり親が実行される前に実行されるようにする方法notify
です。それとも、問題全体について完全に間違っていますか?
前もって感謝します。