Thread::Cleanup - Hook thread destruction.
VERSION
- Version 0.03
+ Version 0.07
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 hooks registered with this module will also be called when
+ pseudo-forks (i.e. processes spawn on Windows for the "fork" emulation)
+ terminate.
+
FUNCTIONS
- "register BLOCK"
- Specify that the "BLOCK" will have to be called (in void context,
- without arguments) every time a thread finishes its job. More precisely,
+ "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 or a
+ pseudo-fork terminates. More precisely :
- * it will always be called before the joining for joined threads ;
+ * For joined threads, it will be called when "join" succeeds, after
+ any "END" block local to the spawn thread ;
- * 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 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 won't trigger for the destruction of the main thread.
+ * For pseudo-forks, it will be called when "waitpid" succeeds, after
+ any local or global "END" block ;
+
+ * It will never trigger for the destruction of the main thread.
EXPORT
None.
DEPENDENCIES
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.
+
threads 1.07.
XSLoader.
Inspired by a question from TonyC on #p5p.
COPYRIGHT & LICENSE
- Copyright 2009,2010 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.