wait
/waitpid
のデフォルトの動作は、プロセスの状態変化を待つことです。私が見つけることができないのは、同じpid_t
引数を使用する2つのプロセスwaitpid
の予想される動作です。2つのプロセスが同じ子を待っているとどうなりますか?
実行と復帰の両方を実行するか、状態の変化に気付いた競合状態ですか?
wait
/waitpid
のデフォルトの動作は、プロセスの状態変化を待つことです。私が見つけることができないのは、同じpid_t
引数を使用する2つのプロセスwaitpid
の予想される動作です。2つのプロセスが同じ子を待っているとどうなりますか?
実行と復帰の両方を実行するか、状態の変化に気付いた競合状態ですか?
親プロセスのみwait()を実行でき、プロセスは親プロセスを1つしか持てません。
ただし、親プロセスには複数のスレッドが存在することがあります。同じ子を待っている複数のスレッドの場合、POSIXはそれらのうちの1つだけが状態の変化を見ることを指定します。複数のスレッドが状態の変化を見ることができるようにするには、WNOWAITフラグを指定してwaitid()を使用する必要があります。
Nitpicking: "プロセスのために親プロセスだけ待つことができます。*"プロセスは待つことができますが、親プロセスだけが成功することができます。 – alk
どのように2つのプロセスが同じ子を持つことができますか? – Olaf