Devel-GlobalDestruction
view release on metacpan or search on metacpan
t/01_basic.t view on Meta::CPAN
$end_worker = sub {
my $tail = (B::end_av()->ARRAY)[-1];
if (!defined $tail or $tail == $end_worker) {
$? = $had_error || 0;
$reinject_retries = 0;
}
elsif ($reinject_retries--) {
push @{B::end_av()->object_2svref}, $end_worker;
}
else {
print STDERR "\n\nSomething is racing with @{[__FILE__]} for final END block definition - can't win after $max_retry iterations :(\n\n";
require POSIX;
POSIX::_exit( 255 );
}
};
eval 'END { push @{B::end_av()->object_2svref}, $end_worker }';
}
# B::end_av isn't available on 5.6, so just use a basic end block
else {
eval 'END { $? = $had_error || 0 }';
}
( run in 1.741 second using v1.01-cache-2.11-cpan-71847e10f99 )