[Moscow.pm] AnyEvent condvar - reuse not possible?

Denis Ibaev dionys на gmail.com
Ср Ноя 20 09:42:26 PST 2013


Для исключения вложенности есть AnyEvent::Delay и AnyEvent::Delay::Simple.


20 ноября 2013 г., 21:25 пользователь Maxim <monk на nuked.su> написал:
> С точки зрения стилистики программизма на АЕ было бы правильнее писать
> тот же функционал (последовательное выполнение двух действий) примерно
> так:
>
> use AnyEvent;
>
> my $cv = AE::cv;
>
> my ($t1, $t2);
> $t1 = AE::timer 1, 0, sub {
>   warn "1st timer fired";
>   undef $t1;
>   $t2= AE::timer (1, 0, sub {
>     undef $t2;
>     warn "2nd timer fired";
>     $cv->send;
>   });
> };
>
> $cv->recv;
>
> Или, во избежание вложенности, так
>
> use AnyEvent;
>
> my $cv = AE::cv;
>
> my ($t1, $t2);
> my $fired2; $fired2=sub {
>   undef $t2;
>   warn "2nd timer fired";
>   $cv->send;
> };
> my $fired1;$fired1= sub {
>   warn "1st timer fired";
>   undef $t1;
>   $t2= AE::timer 1, 0, $fired2;
> };
>
> $t1 = AE::timer 1, 0, $fired1;
>
> $cv->recv;
>

-- 
Денис Ибаев


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