The Ventilator
file: bin/zmqx_ventilator.pl @d72295310
40: $sink->subscribe('');
41: my $sink_in = ZMQx::Class::AnyEvent->watcher( $sink, sub {
42: while (my $message = $sink->receive) {
43: my ($task_id, $index, $word, $cost, $pid) = @$message;
44:
45: my $p = $pending{$task_id};
46: $p->{results}[$index] = "$word:$cost:$pid";
47:
48: if ((scalar grep { $_ } @{$p->{results}}) == $p->{expect}) {
49: say "$task_id: got all results back";
50: delete $pending{$task_id};
51: $control->send([ $p->{reply_to},'',@{ $p->{results} } ]);
52: }
53: }
54: });