Size: a a a

2020 November 18

NK

Nick Knutov Dobrohos... in Modern::Perl
что-то я видимо проглядел, сейчас пересмотрю
источник

VG

Vadim Goncharov in Modern::Perl
unshift_read( chunk => 5, там, например
источник

VG

Vadim Goncharov in Modern::Perl
там этого у него бахато
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
да, увидел в доке. А как не получать новых каллбеков, пока я не обработаю текущий? И чтобы переданные данные не потерялись за это время
источник

DF

Denis F in Modern::Perl
Nick Knutov Dobrohost.ru
да, увидел в доке. А как не получать новых каллбеков, пока я не обработаю текущий? И чтобы переданные данные не потерялись за это время
ты языки не путаешь? :) У тебя обработка коллбека синхронная, пока ты вычитываешь буфер и его обрабатываешь никаких новых коллбеков не будет. Ну если специально не заморачиваться.
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
Denis F
ты языки не путаешь? :) У тебя обработка коллбека синхронная, пока ты вычитываешь буфер и его обрабатываешь никаких новых коллбеков не будет. Ну если специально не заморачиваться.
я примерно вообще не умею AE и вообще асинхронное ни на одном языке. Читаю документацию вот сейчас и про то что каллбеки синхронны - нигде пока не увидел. Или я где-то не там читаю?
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
(но да, логично ожидать асинхронные каллбеки и в js оно вроде так)
источник

DF

Denis F in Modern::Perl
Ну AE работает в один поток, соответственно в один момент времени может исполняться физически только один коллбек. Об этом где-то есть в доке, но мельком.
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
а я бы тупо на селектах наколхозил...
источник

DF

Denis F in Modern::Perl
ну в js точно так же
источник

DF

Denis F in Modern::Perl
Vyacheslav Olkhovchenkov
а я бы тупо на селектах наколхозил...
а смысл самому ioloop колхозить когда он уже есть?
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
проще
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
так. А вот если у меня два порта и я создал два AnyEvent::Handle и у меня в одном случился каллбек - во втором он не случится пока я не обработаю каллбек в первом?
источник

SZ

Sergey Zhmylove in Modern::Perl
Nick Knutov Dobrohost.ru
я примерно вообще не умею AE и вообще асинхронное ни на одном языке. Читаю документацию вот сейчас и про то что каллбеки синхронны - нигде пока не увидел. Или я где-то не там читаю?
Async ≠ multi-threaded.
Оно в один поток выполняется, просто на блокирующих сисколлах умеет переключать контекст и делать другие вещи, подменив сисколлы на неблокирующие
источник

SZ

Sergey Zhmylove in Modern::Perl
Наоборот, сложнее :)
источник

DF

Denis F in Modern::Perl
Nick Knutov Dobrohost.ru
так. А вот если у меня два порта и я создал два AnyEvent::Handle и у меня в одном случился каллбек - во втором он не случится пока я не обработаю каллбек в первом?
для твоего кода да
источник

SZ

Sergey Zhmylove in Modern::Perl
Nick Knutov Dobrohost.ru
так. А вот если у меня два порта и я создал два AnyEvent::Handle и у меня в одном случился каллбек - во втором он не случится пока я не обработаю каллбек в первом?
Конечно. Event loop получит управление только когда коллбэк отработает или «заблокирует»
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
да ну.
while ( $nfound = select( $rout = $rin, undef, $eout = $ein, 10 ) )
и там тупо по дескриптору экземпляр брать
источник

SZ

Sergey Zhmylove in Modern::Perl
Vyacheslav Olkhovchenkov
да ну.
while ( $nfound = select( $rout = $rin, undef, $eout = $ein, 10 ) )
и там тупо по дескриптору экземпляр брать
Ну надо будет ещё nfound хандлить, очередь городить и т.д
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
Denis F
для твоего кода да
т.е. чтобы разные порты обрабатывались одновременно - мне нужно что-то для multi-threaded? А что?
источник