[Moscow.pm] Эмуляция cede на AE...

Jack of Shadows somerandomlogin на gmail.com
Пн Июн 16 19:17:14 PDT 2014


А как вы вообще собрались эмулировать корутины асинхронным фреймворком.
Корутины, строго говоря, сами по себе вообще никакого отношения к
асинхронности не имеют (могут использоваться для написания полностью
синхронного кода) -- это просто удобный способ сделать асинхронный код
проще.


2014-06-16 11:54 GMT+04:00 Илья Винокуров <ilvin at mail.ru>:

>
> Sun, 15 Jun 2014 23:22:56 +0300 от Андрей Костенко <andrey at kostenko.name>:
>
> Ох и говно в голове у вас, ребята
>
>
> Давайте переведем разговор на другую тему и не будем обсуждать имидж
> страны Украина в глазах москалей.
>
> Недавно не осилил на AnyEvent сделать эмуляцию cede
>
> Какая была задумка:
>
> use AnyEvent;
>
> my $flag = 0;
>
> sub CEDE {
>     my $cv = AE::cv;
>     my $w = AE::idle sub {
>         return unless $flag > 3;
>         $cv->send;
>     };
>     $cv->recv;
>     undef $w
> }
>
> my ($w1, $w2);
> $w1 = AE::timer 1, 1, sub { $flag++ };
> $w2 = AE::idle sub {
>     # Тут код
>     CEDE(); # Здесь ждем выполнения условия
>     # Продолжаем выполнение
> };
>
> AE::cv->recv;
>
> Результат - ошибка:
> EV: error in callback (ignoring): AnyEvent::CondVar: recursive blocking
> wait attempted
>
> В принципе возможна такая эмуляция или Марк сделал все, чтобы AE и Coro не
> конкурировали?
>
> С почтением,
>   Илья Винокуров.
>
>
> --
> Moscow.pm mailing list
> moscow-pm at pm.org | http://moscow.pm.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20140617/baac7e72/attachment.html>


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