[Moscow.pm] use dots

Ivan Petrov i.petro.77.00 на gmail.com
Пт Июн 21 13:58:17 PDT 2013


>> Знаю точно, что мне не нужны эти загадочные "корутины" (что это вообще
>> такое)?

> если б они сделаны были по человечески, то были б весьма кстати.. так можно было бы писать в одном
> процессе

а ты сделай человеческие?

> sub a { read; ... read; ... }
> sub b { write; ... write; ... }

> и обе бы читали и писали параллельно, пока другие спят

а чем плохи Леммановские? они скорее файберы, нежели корутины в чистом
виде, но на Леманновских можно и корутины, просто я юзкейзов под
чистые корутины не вижу :)


use Coro;
use AnyEvent::HTTP;
my @f;
for (1 .. 1000) {
    push @f => async {
        http_get 'http://google.com', Coro::rouse_cb;
        Coro::rouse_wait;
    }
}
$_->join for @f;

у меня на Coro нарисован лонг-пулинг демон. Дык мы на 16К сокетов
вышли прежде чем в CPU уперлись. Еще обертка к Twiggy есть на Coro,
тоже хорошо довольно себя показывает :)
ну и еще десяток демонов.


что хорошо - бизнеслогику и протоколы писать одно удовольствие.
на каллбеках с AE (с *любым* асинхронным колбечным фреймворком) мозги
вывихнешь - утечки памяти/сборки результатов из разных мест итп.
а на Coro - логика обычная. что нужно, то и в коде, без всяких
извратов.



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