Wed Apr 22 08:13:31 2020: Request 132398 was acted upon.
Transaction: Ticket created by [email protected]
Queue: PAR-Packer
Subject: PAR::Packer and fork
Broken in: (no value)
Severity: (no value)
Owner: Nobody
Requestors: [email protected]
Status: new
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=132398 >
Bonjour,
le binaire réaliser par pp ne fonctionne pas lorsque fork est utilisé
Version perl : perl 5, version 28, subversion 2 (v5.28.2) built for
MSWin32-x86-multi-thread-64int
Windows 10 64Bits
fichier utilisé :
> use strict;
> use warnings;
> use diagnostics;
> use 5.010;
>
> my $name = 'Foo';
>
> say "PID $$";
> my $pid = fork();
> die if not defined $pid;
> if (not $pid) {
> say "In child ($name) - PID $$ ($pid)";
> $name = 'Qux';
> sleep 2;
> say "In child ($name) - PID $$ ($pid)";
> exit;
> }
>
> say "In parent ($name) - PID $$ ($pid)";
> $name = 'Bar';
> sleep 2;
> say "In parent ($name) - PID $$ ($pid)";
>
> my $finished = wait();
> say "In parent ($name) - PID $$ finished $finished";
sortie :
> PID 9400
> In parent (Foo) - PID 9400 (-9928)
> In child (Foo) - PID -9928 (0)
> In parent (Bar) - PID 9400 (-9928)
> In child (Qux) - PID -9928 (0)
> In parent (Bar) - PID 9400 finished -9928
pack : pp -c -x fork.pl -o fork.exe
sortie :
> PID 8384
> In parent (Foo) - PID 8384 (-4572)
> In child (Foo) - PID -4572 (0)
> In parent (Bar) - PID 8384 (-4572)
> In child (Qux) - PID -4572 (0)
La gestion des fork ne fonctionne pas, fin prématuré de l'exe suivit
egalement des erreurs Windows
Y a t'il une solution pour utiliser fork ou d'autre module comme
POE::Wheel::Run ou Paralle::Loop ,
Tous les modules utilisant fork pose problème.