diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2001-04-09 02:40:24 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-04-09 02:40:24 +0000 |
commit | c7fa416ba7ee901b0af8471f9c36407d36d3b1bc (patch) | |
tree | 9c7c39a0114cc7d4cd8157b43f78daba4f8d5756 /pod/perlfork.pod | |
parent | 948a8a50b3fb40ab50e2ecb64a39deb2fdc5bfe0 (diff) | |
download | perl-c7fa416ba7ee901b0af8471f9c36407d36d3b1bc.tar.gz |
Integrate the perlfork half of #9513 from maintperl into mainline
(the perlunicode half is obsolete)
p4raw-id: //depot/perl@9650
p4raw-edited: from //depot/maint-5.6/perl@9648 'edit in'
pod/perlfork.pod (@7273..)
Diffstat (limited to 'pod/perlfork.pod')
-rw-r--r-- | pod/perlfork.pod | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/pod/perlfork.pod b/pod/perlfork.pod index 82ac6891db..dc0a82bfd6 100644 --- a/pod/perlfork.pod +++ b/pod/perlfork.pod @@ -1,9 +1,14 @@ =head1 NAME -perlfork - Perl's fork() emulation +perlfork - Perl's fork() emulation (EXPERIMENTAL, subject to change) =head1 SYNOPSIS + WARNING: As of the 5.6.1 release, the fork() emulation continues + to be an experimental feature. Use in production applications is + not recommended. See the "BUGS" and "CAVEATS AND LIMITATIONS" + sections below. + Perl provides a fork() keyword that corresponds to the Unix system call of the same name. On most Unix-like platforms where the fork() system call is available, Perl's fork() simply calls it. @@ -274,6 +279,17 @@ are expected to be fixed for thread-safety. =item * +Perl's regular expression engine currently does not play very nicely +with the fork() emulation. There are known race conditions arising +from the regular expression engine modifying state carried in the opcode +tree at run time (the fork() emulation relies on the opcode tree being +immutable). This typically happens when the regex contains paren groups +or variables interpolated within it that force a run time recompilation +of the regex. Due to this major bug, the fork() emulation is not +recommended for use in production applications at this time. + +=item * + Having pseudo-process IDs be negative integers breaks down for the integer C<-1> because the wait() and waitpid() functions treat this number as being special. The tacit assumption in the current implementation is that |