Barrie Slaymaker wrote:
On Wed, 2003-10-01 at 14:09, Stas Bekman wrote:

And it doesn't seem to do the right thing. It aborts the child process, but leaves the parent running as if it didn't receive SIGINT, causing a false failure reports.


Not sure why; IPC::Run uses system() to spawn the child; is the system()
returning?

it doesn't trigger SIGINT handler. Tested with 5.6.1 and 5.8.1.


use IPC::Run3;

for my $sig (qw(INT TRAP ABRT IO KILL CHLD)) {
    $SIG{$sig} = sub { print STDERR "got SIG$sig\n"; };
}

my $command = qq[perl -le 'sleep 10; print "done"'];
my $log = '';
system $command;
#run3 $command, \undef, \$log, \$log;
print $log;

Running this and doing Ctrl-C, prints no SIGINT, only SIGCHLD, which is unrelated.

Any ideas how to fix that? It messes things up a bit. It was very clean before using run3 (=system) with $SIG{INT}.

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to