X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FThread-Cleanup.git;a=blobdiff_plain;f=lib%2FThread%2FCleanup.pm;h=43b3c06d12408fc0e7a5a5dcb8c661bb3d92ca60;hp=5ee7ea6fb55b1d7d1b96289a4b0b9741e0527c24;hb=c71909828ba6037d6be25567e2bc218562a574ba;hpb=304a9193803510a3d58e86df7b93eea52d62337c diff --git a/lib/Thread/Cleanup.pm b/lib/Thread/Cleanup.pm index 5ee7ea6..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.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 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 destruction of the main thread. +It will never trigger for the destruction of the main thread. =back @@ -79,6 +88,9 @@ None. 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. + L 1.07. L. @@ -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.