[Moscow.pm] HTTPD на короутинах
Alexandr Gomoliako
zzz на zzz.org.ua
Вс Май 27 15:36:47 PDT 2012
> use Coro;
> use Coro::Timer qw(timeout);
>
> sub quorum_request {
> my $min = shift;
> my @list = @_;
>
> my $res = Coro::Channel->new;
> foreach my $e ( @list ) {
> async {
> print "$e at ". time ."\n";
> sleepfor($e);
> print "done $e at ". time ."\n";
> $res->put($e);
> };
> }
>
> return map $res->get, 1 .. $min;
> }
>
> my @res = quorum_request(2, qw(3 9 5));
> print join(', ', @res). "\n";
>
> # вернется сюда :)
>
> sub sleepfor {
> my $timeout = timeout shift;
> Coro::schedule; # wait until woken up or timeout
> }
Ну и? И так понятно, что так можно, а
> на __ одних корутинах __ вообще не реализуем
> Все это обсуждение - сплошное словоблудие и никакого намека на конструктивность.
Сложность - это конструктивно и вообще самое главное в
программировании. И все эти тонны парадигм и подходов нацелены только
на то, чтобы сделать программы менее сложными и более надежными. Ну
кроме корутин, они здесь не знаю на что нацелены, усложнить жизнь? :)
Подробная информация о списке рассылки Moscow-pm