summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/pods/perlfork.pod
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/pods/perlfork.pod')
-rw-r--r--Master/tlpkg/tlperl/lib/pods/perlfork.pod12
1 files changed, 10 insertions, 2 deletions
diff --git a/Master/tlpkg/tlperl/lib/pods/perlfork.pod b/Master/tlpkg/tlperl/lib/pods/perlfork.pod
index 709d053d28e..7729444c40b 100644
--- a/Master/tlpkg/tlperl/lib/pods/perlfork.pod
+++ b/Master/tlpkg/tlperl/lib/pods/perlfork.pod
@@ -78,10 +78,12 @@ and return its status.
=item kill()
C<kill('KILL', ...)> can be used to terminate a pseudo-process by
-passing it the ID returned by fork(). This should not be used except
+passing it the ID returned by fork(). The outcome of kill on a pseudo-process
+is unpredictable and it should not be used except
under dire circumstances, because the operating system may not
guarantee integrity of the process resources when a running thread is
-terminated. Note that using C<kill('KILL', ...)> on a
+terminated. The process which implements the pseudo-processes can be blocked
+and the Perl interpreter hangs. Note that using C<kill('KILL', ...)> on a
pseudo-process() may typically cause memory leaks, because the thread
that implements the pseudo-process does not get a chance to clean up
its resources.
@@ -307,6 +309,12 @@ are expected to be fixed for thread-safety.
=back
+=head1 PORTABILITY CAVEATS
+
+In portable Perl code, C<kill(9, $child)> must not be used on forked processes.
+Killing a forked process is unsafe and has unpredictable results.
+See L</kill()>, above.
+
=head1 BUGS
=over 8