[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