]> git.vpit.fr Git - perl/modules/Thread-Cleanup.git/blobdiff - lib/Thread/Cleanup.pm
Be more precise about the hook timing with regards to END blocks
[perl/modules/Thread-Cleanup.git] / lib / Thread / Cleanup.pm
index 96256fd4ea227484a841e01d07da822884123b71..c09372c330a6a81f6ca74d924b3db87adb2ee095 100644 (file)
@@ -49,22 +49,26 @@ The hook will also be called when pseudo-forks (i.e. processes spawn on Windows
     register { ... };
     &register($coderef);
 
-Specify that the given block or code reference C<$coderef> 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 *
 
-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 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 won't trigger for the destruction of the main thread.
+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 will never trigger for the destruction of the main thread.
 
 =back
 
@@ -111,7 +115,7 @@ Inspired by a question from TonyC on #p5p.
 
 =head1 COPYRIGHT & LICENSE
 
-Copyright 2009,2010,2013 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.