At 1:16 PM -0700 8/2/02, [EMAIL PROTECTED] wrote:
>The reason I went to 5.8.0 was because I saw references to waitpid in the
>Email archive.  Well, my problem is still here:
>
>Fatal VMS error (status=2472) at PERLKIT:[SOURCE]VMS.C;1, line 2292 at
>/dka200/rsa/agent/lib/POE/Kernel.pm line 1469.

>vms.c certainly has changed!  I suspect some optimization because the line
>reference made sense in 5.6.1, now it does not:    vmspipedsc.dsc$a_pointer
>= tfilebuf;
>
>The offending line in Kernel.pm is:     while ($pid = waitpid(-1, WNOHANG))
>{
>
>The VMS error status is: %SYSTEM-W-NOMOREPROC, no more processes

That was the error on 5.6.1 and it was due to the fact that the
waitpid implementation calls sys$getjpi, and a pid of -1 is the
directive for sys$getjpi telling it to do a wildcard search.  So it
scanned all processes on your system and then blew up instead of
waiting for the first available child to give up the ghost, which is
what the -1 argument to waitpid is supposed to mean.

waitpid with a -1 argument is not now and never has been supported on
Perl for VMS (at least for processes created via Perl's spawning
mechanisms) but as of 5.8.0 it should give you ENOTSUP rather than
looping over all processes on the system.
-- 
________________________________________
Craig A. Berry
mailto:[EMAIL PROTECTED]

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

Reply via email to