develooper Front page | perl.perl5.porters | Postings from February 2000

[ID 20000220.005] waitpid usage in perlipc pod

Ben Low
February 20, 2000 20:50
[ID 20000220.005] waitpid usage in perlipc pod
Message ID:

This is a bug report for perl from,
generated with the help of perlbug 1.26 running under perl 5.00502.

I've asked on c.l.p.moderated whether this issue is known and/or 
corrected in the latest perls, and had one response each way. I have
confirmed it on 5.004_04 and 5.005_02, one person also said 5.005_63 
(is that a valid version, maybe they meant _03?). Anyhow:

The perlipc documentation gives an example usage for waitpid as:
   use POSIX ":sys_wait_h";
   sub REAPER {
     my $child;
     while ($child = waitpid(-1,WNOHANG)) {
       $Kid_Status{$child} = $?;
     $SIG{CHLD} = \&REAPER;  # still loathe sysV
   # do something that forks...
 But the docs for waitpid show it returning -1 if/when no children are 
waiting to be harvested. Thus, the above loop never exits. Should it not 
     while (($child = waitpid(-1,WNOHANG)) > 0) {
       $Kid_Status{$child} = $?;

[Please do not change anything below this line]

Site configuration information for perl 5.00502:

Summary of my perl5 (5.0 patchlevel 5 subversion 2) configuration:
    osname=solaris, osvers=2.7, archname=sun4-solaris
    uname='sunos 5.7 s998_18 sun4u sparc sunw,ultra-1 '
    hint=previous, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
    cc='gcc', optimize='-O', gccversion=2.8.1
    ccflags ='-I/usr/local/include'
    stdchar='char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    alignbytes=8, usemymalloc=y, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
    libs=-lsocket -lnsl -lgdbm -ldl -lm -lc -lcrypt
    libc=/lib/, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'

Locally applied patches:

@INC for perl 5.00502:

Environment for perl 5.00502:
    LANG (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PERL_BADLANG (unset)
    SHELL=/bin/sh Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About