Привет! 2 октября 2012 г., 12:07 пользователь Mons Anderson <[email protected]> написал: > Всем привет. Я так давно работаю исключительно с AE, что совсем выпал из > темы синхронных библиотек ) > Есть простейшая задача: tcp connect / host resolution / socket rw. > Но! С жестко заданным таймаутом.
Если alarm не подходит. То далее, как я понимаю проблема только в резолвинге? Тогда можно его отдельно сделать, через Net::DNS (не знаю насколько это быстро получится). > > Всяческие IO::Socket* могут легко заблокироваться на неограниченное время, > например на ресолве. > > Есть мысль написать что-то синхронное, аналогичное AnyEvent::Socket и > AnyEvent::DNS, но с жестким контролем таймаутов. > т.е. типа: > > my $fh = tcp_connect $host,$port, $timeout or die "connect failed: $!"; > my $rr = resolve in => A => "google.com", $timeout or die "resolution > failed: $!"; > > И аналогичное AE::Handle: > my $data = $h->read( chunk => 42, $timeout ) or die "read failed: $!"; > > Возможно кто-то может подсказать что-то готовое и без использования AE/EV? > > -- > Best wishes, > Vladimir V. Perepelitsa aka Mons Anderson > <[email protected]>, <[email protected]> > http://github.com/Mons > > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > -- Vladimir Timofeev <[email protected]> -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
