<div dir="ltr">А как вы вообще собрались эмулировать корутины асинхронным фреймворком.<div>Корутины, строго говоря, сами по себе вообще никакого отношения к асинхронности не имеют (могут использоваться для написания полностью синхронного кода) -- это просто удобный способ сделать асинхронный код проще.<br>
<div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-16 11:54 GMT+04:00 Илья Винокуров <span dir="ltr"><<a href="mailto:ilvin@mail.ru" target="_blank">ilvin@mail.ru</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><br>Sun, 15 Jun 2014 23:22:56 +0300 от Андрей Костенко <<a href="mailto:andrey@kostenko.name" target="_blank">andrey@kostenko.name</a>>:<br>
<blockquote style="border-left:1px solid #0857a6;margin:10px;padding:0 0 0 10px"><div><div><div><div><div>Ох и говно в голове у вас, ребята</div></div></div></div></div></blockquote><br>Давайте переведем разговор на другую тему и не будем обсуждать имидж страны Украина в глазах москалей.<br>
<br>Недавно не осилил на AnyEvent сделать эмуляцию cede<br><br>Какая была задумка:<br><br>use AnyEvent;<br><br>my $flag = 0;<br><br>sub CEDE {<br>    my $cv = AE::cv;<br>    my $w = AE::idle sub {<br>        return unless $flag > 3;<br>
        $cv->send;<br>    };<br>    $cv->recv;<br>    undef $w<br>}<br><br>my ($w1, $w2);<br>$w1 = AE::timer 1, 1, sub { $flag++ };<br>$w2 = AE::idle sub {<br>    # Тут код<br>    CEDE(); # Здесь ждем выполнения условия<br>
    # Продолжаем выполнение<br>};<br><br>AE::cv->recv;<br><br>Результат - ошибка:<br>EV: error in callback (ignoring): AnyEvent::CondVar: recursive blocking wait attempted<br><br>В принципе возможна такая эмуляция или Марк сделал все, чтобы AE и Coro не конкурировали?<br>
<br>С почтением,<br>  Илья Винокуров.<br><br></div>
<br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></div><br></div></div></div></div>