[Moscow.pm] HTTPD на короутинах

Ivan Petrov i.petro.77.00 на gmail.com
Вс Май 27 12:07:35 PDT 2012


> Покажу еще пример, который на одних корутинах вообще не реализуем,
> случайно вспомнил:

> sub quorum_request {
> my $cb = pop;
> my $min = pop;
> my @res;

> foreach my $node (@_) {
> send_request $node, "something", sub {
> push @res, [shift];

> if (--$min == 0) {
> &$cb(@res);
> }
> };
> }
> }

> quorum_request "foo:1234", "bar:2345", "baz:80", 2, sub {
> # вернется сюда когда две любые ноды ответят.
> # т.е. если одна из трех упала, то она никого не задержит
> };

почему ты думаешь что это нельзя сделать на короутинах? тот же счетчик
будет сколько их ответило. кстати по хорошему прерывать еще надо
процессы опрашивающие ноды что сверх 2 продолжат работать.




Подробная информация о списке рассылки Moscow-pm