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 )