私はマルチスレッド化されたアプリケーションを持っています.1つのスレッドがwait()で死んだ子を収集する責任があり、別のスレッドが要求に応じてフォークでそれらを生成します.
2.4 カーネルと LinuxThread を使用する 1 つのプラットフォームでは、待機が常に ECHILD で失敗することがわかりました。2.4 カーネルでの LinuxThreads の非 POSIX 準拠の実装に問題がある可能性があることがわかりました。以下の説明では、これを解決する方法がないことを示唆しています。
それでも、誰も解決策を知らないことを確認したいと思います。カーネルのパッチでも構いません。
アプリケーションの設計について考えると、fork() と wait() の両方を 1 つのスレッドで (または膨大な労力をかけてのみ) 実行できるとは思えません。