私の英語でごめんなさい...
わかりました、問題です。Parallel::ForkManager を使用して、PERL スクリプトの fork プロセスを制限しています。
例:
$pm = Parallel::ForkManager->new(3);
[...]
while ($new_client = $httpdaemon->accept())
{
$pm->start and next;
# do smth with request in here
$pm->finish;
}
子供たちが正常に分岐し、正常に終了していることがわかりますが、この場合、MAX - 3 よりも多くの要求を処理できません。
4 番目の要求 (前の 3 の後) で、スクリプトは新しい子を生成したくない (ハングする)
? Parallel::ForkManager->new(3) - これはつまり - 同時に最大 3 つですよね?
ご存知のように、3 つのリモート クライアントを同時に処理したいのですが、それらが完了したら、他の 3 つで同じことを行います。
解決策が見つからない場合は、代わりに Proc::Queue を使用します....