Thread::Cleanup - Hook thread destruction.
VERSION
- Version 0.05
+ Version 0.06
SYNOPSIS
use Thread::Cleanup;
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 "fork" emulation) terminate.
+
FUNCTIONS
"register"
register { ... };
®ister($coderef);
Specify that the given block or code reference $coderef will have to be
- called (in void context, without arguments) every time a thread finishes
- its job. More precisely,
+ called (in void context, without arguments) every time a thread or a
+ pseudo-fork terminates. More precisely :
+
+ * For joined threads, it will be called when "join" succeeds, after
+ any "END" block local to the spawn thread ;
- * it will always be called before the joining for joined threads ;
+ * 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 "END" time ;
- * it will be called for detached threads if and only if they terminate
- before the main thread, and the hook will then fire at "END" time ;
+ * For pseudo-forks, it will be called when "waitpid" succeeds, after
+ any "END" block local to the spawn process but before any global
+ "END" block ;
- * it won't trigger for the destruction of the main thread.
+ * It will never trigger for the destruction of the main thread.
EXPORT
None.
Inspired by a question from TonyC on #p5p.
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.