On Sun Feb 28 19:50:40 2016, b...@abrij.org wrote: > $ perl6 -e 'my $r = Supplier.new; my $s = $r.Supply; my $c = > $s.Channel; start { for @$c { "got $_".say }; 42.say; }; sleep 0.5; > for 1..4 { $r.emit($_); sleep 0.5 }; $r.quit(X::AdHoc.new(:message)); > sleep 1;' > got 1 > got 2 > got 3 > got 4 > Method 'quit' not found for invocant of class 'Channel' > in block <unit> at -e line 1 > > quoting jnthn: "It's indeed a bug. It should really be calling .fail > on the Channel, which should then be resulting in the exception being > thrown in the for iteration." > > Probably this is as simple as changing line 579 of Supply.pm
There was a little more to it, since Channel.Supply was also dropping errors rather than passing them along. Fixed that also, and added test coverage to S17-supply/Channel.t. /jnthn