]> git.vpit.fr Git - perl/modules/Thread-Cleanup.git/blobdiff - lib/Thread/Cleanup.pm
This is 0.06
[perl/modules/Thread-Cleanup.git] / lib / Thread / Cleanup.pm
index b2773f67ead8200e15d74cff010a8b5ddaa82fc1..3c2a5e8883144dc66d3e5d65f0e5d48458b2cb0e 100644 (file)
@@ -11,14 +11,14 @@ Thread::Cleanup - Hook thread destruction.
 
 =head1 VERSION
 
-Version 0.02
+Version 0.06
 
 =cut
 
 our $VERSION;
 
 BEGIN {
- $VERSION = '0.02';
+ $VERSION = '0.06';
  require XSLoader;
  XSLoader::load(__PACKAGE__, $VERSION);
 }
@@ -40,26 +40,35 @@ This module allows you to hook thread destruction without fiddling with the inte
 
 It acts globally on all the threads that may spawn anywhere in your program, with the exception of the main thread.
 
+The hook will also be called when pseudo-forks (i.e. processes spawn on Windows for the C<fork> emulation) terminate.
+
 =head1 FUNCTIONS
 
-=head2 C<register BLOCK>
+=head2 C<register>
+
+    register { ... };
+    &register($coderef);
 
-Specify that the C<BLOCK> will have to be called (in void context, without arguments) every time a thread finishes its job.
-More precisely,
+Specify that the given block or code reference C<$coderef> will have to be called (in void context, without arguments) every time a thread or a pseudo-fork terminates.
+More precisely :
 
 =over 4
 
 =item *
 
-it will always be called before the joining for joined threads ;
+For joined threads, it will be called when C<join> succeeds, after any C<END> block local to the spawn thread ;
+
+=item *
+
+For detached threads, it will be called if and only if the thread terminates before the main thread, and the hook will then fire at global C<END> time ;
 
 =item *
 
-it will be called for detached threads if and only if they terminate before the main thread, and the hook will then fire at C<END> time ;
+For pseudo-forks, it will be called when C<waitpid> succeeds, after any C<END> block local to the spawn process but before any global C<END> block ;
 
 =item *
 
-it won't trigger for the destruction of the main thread.
+It will never trigger for the destruction of the main thread.
 
 =back
 
@@ -79,6 +88,9 @@ None.
 
 L<perl> 5.8.
 
+A C compiler.
+This module may happen to build with a C++ compiler as well, but don't rely on it, as no guarantee is made in this regard.
+
 L<threads> 1.07.
 
 L<XSLoader>.
@@ -103,7 +115,7 @@ Inspired by a question from TonyC on #p5p.
 
 =head1 COPYRIGHT & LICENSE
 
-Copyright 2009 Vincent Pit, all rights reserved.
+Copyright 2009,2010,2013,2014 Vincent Pit, all rights reserved.
 
 This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.