[Moscow.pm] AnyEvent::Pg

Alexandr Gomoliako zzz на zzz.org.ua
Вт Май 1 06:42:44 PDT 2012


>> Обязательно нужен подход, а то получится лапша. Не
>> раз о CPS (continuation passing style) говорил, но что-то пока
>> бесполезно.
>
> кто бы фреймворк CPS бы написал чтобы удобный был итп и
> производительность чтобы не страдала.

Вот весь фреймворк :)

    sub foo ($$&) {
        my ($one, $two, $cb) = @_;
        ...
        bar 1, sub {
            baz 2, 3, sub {
                &$cb(shift, ...)
            };
        };
    }

Тут главное что: это только функции, они не возвращают guard объектов,
никогда не умирают и результат возвращают только в колбэк.

Для обработки ошибок можно устанавливать $! и очищать, когда все ок, а
в @_ ложить подробности.

> с функции на функцию управляет пользователь. а с CPS даже с
> короутинами уже скорость падает.

С CPS как раз пользователь и управляет, в этом его смысл.


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