register { ... };
®ister($coderef);
-Specify that the given block or code reference C<$coderef> will have to be called (in void context, without arguments) every time a thread finishes its 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 joining 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 *
-it will be called for detached threads if and only if they terminate before the main thread, and the hook will then fire at C<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 C<END> time ;
=item *
-it won't trigger for the destruction of the main thread.
+For pseudo-forks, it will be called when C<waitpid> succeeds, after any C<END> block local to the spawn process but before any global C<END> block ;
+
+=item *
+
+It will never trigger for the destruction of the main thread.
=back