summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pod/perlmod.pod17
-rw-r--r--pod/perlsub.pod4
2 files changed, 19 insertions, 2 deletions
diff --git a/pod/perlmod.pod b/pod/perlmod.pod
index 01056f1d98..29ad67cb12 100644
--- a/pod/perlmod.pod
+++ b/pod/perlmod.pod
@@ -443,6 +443,23 @@ the module. It is the responsibility of the F<.pm> file to load
although the POSIX module happens to do both dynamic loading and
autoloading, the user can say just C<use POSIX> to get it all.
+=head2 Making your module threadsafe
+
+Perl has since 5.6.0 support for a new type of threads called
+interpreter threads. These threads can be used explicitly and implicitly.
+
+Ithreads work by cloning the data tree so that no data is shared
+between different threads. These threads can be used using the threads
+module or by doing fork() on win32 (fake fork() support). When a thread is
+cloned all perl data is cloned, however non perl data cannot be cloned.
+Perl after 5.7.2 has support for the C<CLONE> keyword. C<CLONE> will be
+executed once for every package that has it defined (or inherits it).
+It will be called in the context of the new thread, so all modifications
+are made in the new area.
+
+If you want to CLONE all objects you will need to keep track of them per
+package. This is simply done using a hash and Scalar::Util::weaken().
+
=head1 SEE ALSO
See L<perlmodlib> for general style issues related to building Perl
diff --git a/pod/perlsub.pod b/pod/perlsub.pod
index b440cd1d93..ea7546e95c 100644
--- a/pod/perlsub.pod
+++ b/pod/perlsub.pod
@@ -207,8 +207,8 @@ core, as are modules whose names are in all lower case. A
function in all capitals is a loosely-held convention meaning it
will be called indirectly by the run-time system itself, usually
due to a triggered event. Functions that do special, pre-defined
-things include C<BEGIN>, C<CHECK>, C<INIT>, C<END>, C<AUTOLOAD>, and
-C<DESTROY>--plus all functions mentioned in L<perltie>.
+things include C<BEGIN>, C<CHECK>, C<INIT>, C<END>, C<AUTOLOAD>,
+C<CLONE> and C<DESTROY>--plus all functions mentioned in L<perltie>.
=head2 Private Variables via my()