=head1 VERSION
-Version 0.01
+Version 0.06
=cut
our $VERSION;
BEGIN {
- $VERSION = '0.01';
+ $VERSION = '0.06';
require XSLoader;
XSLoader::load(__PACKAGE__, $VERSION);
}
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 C<fork> emulation) terminate.
+
=head1 FUNCTIONS
-=head2 C<register BLOCK>
+=head2 C<register>
+
+ register { ... };
+ ®ister($coderef);
-Specify that the C<BLOCK> 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<join> succeeds, after any C<END> 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<END> 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<END> time ;
+For pseudo-forks, it will be called when C<waitpid> succeeds, after any local or global C<END> 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
L<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.
+
L<threads> 1.07.
L<XSLoader>.
=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.