|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alex Dedul 2:450/82 10 Oct 2002 16:27:07 To : Andrey Sapozhnikov Subject : alarm signal problem -------------------------------------------------------------------------------- Помню когда-то , 09 Oct 02 в 16:51, Andrey Sapozhnikov напиcал для Igor S Chencov нижecлeдyющee: >> $SIG{ALRM} = sub { die "alarm\n" }; >> eval { >> alarm ($opt_timeout); >> . . . >> alarm(0); >> }; AS> Подобными конструкциями необходимо пользоваться с AS> крайней осторожностью. Есть много подводных камней. AS> Я бы рекомендовал для таймаутов сокетных операций AS> использовать только IO::Select в сочетании с AS> fcntl(sock, F_SETFL, O_NONBLOCK); Так в том то и дело, что сокетные операции все где-то внутри Net::SOCKS и выставить им таймаут дергая его методы невозможно. AS> Самые явные подводные камни, это: AS> 1. вложенные ALARM-ы. Делая AS> { AS> local $SIG{ALRM} = sub {...}; AS> alarm(30); [...] AS> По моему достаточно для того, чтоб задуматься об AS> отказе от использования alarm за исключением редких AS> вырожденных случаев. Похоже именно такой случай тут и имеет место быть. WBR, Alex --- GoldED+/W32 1.1.4.7 * Origin: Iron Hills Lab. (2:450/82) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/14343da58f23.html, оценка из 5, голосов 10
|