NAME
   Perl::AfterFork - reinitializes Perl's notion of $$ and getppid()

SYNOPSIS
     use Perl::AfterFork;
     &Perl::AfterFork::reinit_pid;
     &Perl::AfterFork::reinit_ppid;
     &Perl::AfterFork::reinit_pidstatus;
     &Perl::AfterFork::reinit;

DESCRIPTION
   Using Perl's "fork()" command or your libc's "fork()" function or even
   your operating system's "fork" syscall does not do the same thing.

   Since a process' PID does not change during it's life time Perl caches
   the result of the "getpid" syscall using the once fetched PID each time
   $$ is used. Hence after a successful "fork()" the internal PID-cache
   must be invalidated. The same argument is valid for "glibc". It caches
   the getpid(2) as well.

   As for getppid(2), Perl is even caching that. In my opinion Perl is
   doing wrong when caching the getppid(2) result at all since it can
   change without further notice when the parent process dies.

   Further Perl maintains an internal cache of spawned children for it's
   "waitpid" implementation.

   All these cached information can be reinitialized with this module.

   reinit_pid
       reinitializes the PID-cache

   reinit_ppid
       reinitializes the PPID-cache

   reinit_pidstatus
       reinitializes the waitpid-cache

   reinit
       reinitializes all 3 at once

EXPORT
   Not an Exporter.

AUTHOR
   Torsten Foertsch, <[email protected]>

COPYRIGHT AND LICENSE
   Copyright (C) 2005 by Torsten Foertsch

   This library is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself, either Perl version 5.8.5 or, at
   your option, any later version of Perl 5 you may have available.

INSTALLATION
    perl Makefile.PL
    make
    make test
    make install

DEPENDENCIES
   *   "syscall( SYS_fork )" and "syscall( SYS_getpid )" are needed for
       testing.

   *   perl 5.8.0

TESTED ON
   *   Linux 2.6 with glibc 2.3.3