X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FThread-Cleanup.git;a=blobdiff_plain;f=lib%2FThread%2FCleanup.pm;h=43b3c06d12408fc0e7a5a5dcb8c661bb3d92ca60;hp=f7f815b60e7192b45ff3b3aa091056ece88280a6;hb=c71909828ba6037d6be25567e2bc218562a574ba;hpb=15b9171b2fc61b12e0dcc123369fc2b66fe87012 diff --git a/lib/Thread/Cleanup.pm b/lib/Thread/Cleanup.pm index f7f815b..43b3c06 100644 --- a/lib/Thread/Cleanup.pm +++ b/lib/Thread/Cleanup.pm @@ -11,14 +11,14 @@ Thread::Cleanup - Hook thread destruction. =head1 VERSION -Version 0.01 +Version 0.06 =cut our $VERSION; BEGIN { - $VERSION = '0.01'; + $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 hooks registered with this module will also be called when pseudo-forks (i.e. processes spawn on Windows for the C emulation) terminate. + =head1 FUNCTIONS -=head2 C +=head2 C + + register { ... }; + ®ister($coderef); -Specify that the C will have to be called (in void context, without arguments) every time a thread finishes is 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 join for joined threads ; +For joined threads, it will be called when C succeeds, after any C 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 time ; =item * -it will be called for detached threads only if they terminate before the main thread, and the hook will then fire at C time ; +For pseudo-forks, it will be called when C succeeds, after any local or global C block ; =item * -it won't trigger for the the destruction of the main thread. +It will never trigger for the destruction of the main thread. =back @@ -77,11 +86,14 @@ None. =head1 DEPENDENCIES -C 5.8. +L 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. -C 1.07. +L 1.07. -C. +L. =head1 AUTHOR @@ -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.