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

Reply via email to