Alright, it seems that rakudo is not entirely incorrect here. See this discussion: https://irclog.perlgeek.de/perl6-dev/2017-07-18#i_14885863
TL;DR, one should use something like this: whenever $proc.print(“one\ntwo\nthree\nfour”) { $proc.close-stdin } So it seems that it's not a bug, but a trap maybe? I'll leave this for somebody else to close. On 2017-07-17 22:45:01, alex.jakime...@gmail.com wrote: > Code: > > sub get-output() { > my $proc = Proc::Async.new: :w, ‘head’, ‘-n’, ‘1’; > my $success; > react { > whenever $proc.stdout { $success = True } > whenever $proc.start { die ‘FAIL!’ unless $success } > > $proc.print: “one\ntwo\nthree\nfour”; > $proc.close-stdin; > } > say $++; > } > > loop { get-output } > > > Again, the result depends on your luck. Ideally it should not “die” > ever, because there should always be one line in the output and > therefore $success will be set to true. However, sometimes its stdout > is empty and therefore it fails. It may fail after 20+ executions, and > sometimes it fails almost immediately. > > Related ticket: https://rt.perl.org/Ticket/Display.html?id=131763