in reply to Proposal how to make modules using fork more portable
Thanks for your feedback, corion and sundialsvc4!
This is a updated proposal of changes.
Changes to pod/perlfunc.pod
Added at end of fork
On some platforms such as Windows, where the fork() system call is not + available, Perl can be built to emulate fork() in the Perl interpreter. The emula +tion is designed to, at the level of the Perl program, be as compatible as possible with th +e "Unix" fork(). However it has limitation that has to be considered in code intended t +o be portable. See L<perlfork> for more details.
Added at end of kill
On some platforms such as Windows where the fork() system call is not +available. Perl can be built to emulate fork() at the interpreter level. This emulation has limitation related to kill that has to be considere +d, for code running on Windows and in code intended to be portable. See L<perlfork> for more details.
Changes to pod/perlfork.pod
Added at the end of =item kill()
The process which implements the pseudo-processes can be blocked and t +he Perl interpreter hangs.
New section added before =head1 BUGS
=head1 PORTABLE PERL CODE In portable Perl code, kill(9, $child) must not be used on forked proc +esses. Forked process are in Windows implemented as a pseudo-processes. To use kill(9, $child) on pseudo-processes is unsafe. The process which implements the pseudo-processes can be blocked and t +he Perl interpreter hangs. The outcome of kill on a pseudo-process is unpredictable. It depends on the timing in the Windows operating system. Code that has worked, suddenly can fail, resulting in errors which are + difficult to find.
|
|---|