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

Илья Винокуров ilvin на mail.ru
Пн Июн 16 00:54:07 PDT 2014


Sun, 15 Jun 2014 23:22:56 +0300 от Андрей Костенко <andrey на 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 не конкурировали?

С почтением,
  Илья Винокуров.

----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20140616/cd718081/attachment-0001.html>


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