This solves the problem!
I want to be able to run the same program on both old and new systems,
so rather than substituting $? for ${^CHILD_ERROR_NATIVE} directly, I
substituted like so:
WIFSTOPPED(( defined ${^CHILD_ERROR_NATIVE} ? ${^CHILD_ERROR_NATIVE} : $? ))
For the benefit of the curiou
So it seems that this is an intentional upstream change*.
The perlvar entry for $? now notes that it contains "the 16-bit status
word returned by the traditional Unix wait() system call (or else is
made up to look like it). Thus, the exit value of the subprocess is
really ($? >> 8), and $? & 127
On Sat, Aug 15, 2009 at 5:15 AM, torp<1250272...@noid.net> wrote:
> When perl is testing if a child process is stopped, the
> result of the WIFSTOPPED function is never correct:
Thanks for the bug report Tor.
It appears that the problem is actually with waitpid not setting $?
correctly when the p
Package: perl-base
Version: 5.10.0-19
Severity: important
When perl is testing if a child process is stopped, the
result of the WIFSTOPPED function is never correct:
#!/usr/bin/perl
$|++;
use POSIX;
unless ( $pid = fork ) {
print "child: stopping self\n";
kill STOP => $$;
e
4 matches
Mail list logo