summaryrefslogtreecommitdiff
path: root/pod/perlfork.pod
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-04-09 02:40:24 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-04-09 02:40:24 +0000
commitc7fa416ba7ee901b0af8471f9c36407d36d3b1bc (patch)
tree9c7c39a0114cc7d4cd8157b43f78daba4f8d5756 /pod/perlfork.pod
parent948a8a50b3fb40ab50e2ecb64a39deb2fdc5bfe0 (diff)
downloadperl-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.pod18
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