On Wed, 23 Dec 2015 03:05:41 -0800, vyt...@gmail.com wrote: > Following script throws error ( "Aborted (core dumped)" ) when $id == > 1007. This is because $p.err is really never closed. however, what I > find intriguing is if I remove "my $output = $p.err.slurp-rest;" line > it works fine. None the less, error message should be improved. > > use v6; > > my $id = 0; > recursion(); > > sub recursion() > { > say ++$id; > > my $p = run('false', :out, :err ); > my $output = $p.err.slurp-rest; > > try { > $p.out.close; > $p.err.close; > CATCH { default {} } > } > > if ($id < 1010) { > recursion(); > } > } > > $ perl6 --version > This is Rakudo version 2015.11-708-g76c447b built on MoarVM version > 2015.11-113-gbd56e2e implementing Perl 6.b.
To note: the crash is due to exhausting open file descriptors. Sticking this at the start of the script makes it crash when $id is 807 my @fhs = ^200 .map: *.IO.open: :w;