проблема такая (язык перл), есть некий враттер для чтения из сокета: sub rdsock { my $sock = shift; my %args = @_; my $timeout = $args{-timeout} || $TIMEOUT_DATA; my $nb = $args{-nbytes}; my $data; eval { local $SIG{ALRM} = sub { die "alarm\n" }; alarm($timeout); if (defined($nb)) { $sock->read($data, $nb); } else { $data = $sock->getline(); } alarm(0); }; if ($@) { return 0 unless $@ eq "alarm\n"; }else{ return 0 if(!$data); return $data; } } но, он почему-то не работает, в трейсе происходит вот такое: read(4, 0xa351068, 4096) = ? ERESTARTSYS (To be restarted) --- SIGALRM (Alarm clock) @ 0 (0) --- sigreturn() = ? (mask now []) rt_sigprocmask(SIG_BLOCK, [ALRM], NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [ALRM], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [ALRM], [], 8) = 0 rt_sigaction(SIGALRM, {0x80b6289, [], SA_RESTORER, 0x7e0be8}, {0x80b6289, [], SA_RESTORER, 0x7e0be8}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [ALRM], [], 8) = 0 rt_sigaction(SIGALRM, {SIG_DFL}, {0x80b6289, [], SA_RESTORER, 0x7e0be8}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [ALRM], [], 8) = 0 rt_sigaction(SIGALRM, {0x80b6289, [], SA_RESTORER, 0x7e0be8}, {SIG_DFL}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 alarm(2) = 0 read(4, 0xa351068, 4096) = ? ERESTARTSYS (To be restarted) --- SIGALRM (Alarm clock) @ 0 (0) --- sigreturn() = ? (mask now [])
Ответ на:
комментарий
от idle
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Firefox не запускается и в консоль не выдает ошибки (2004)
- Форум Сборка модуля ядра из исходников под Linux 4.4 (2018)
- Форум Консольный plantuml не создаёт диаграммы из json. (2021)
- Форум Перестал запускатся blender (2007)
- Форум strace выдаёт Permission denied (2023)
- Форум И вновь потоки[C] (2012)
- Форум Aapache перестает обрабатывать запросы. (2013)
- Форум Некий прокси сервер. Проблема с пересылкой пакетов. Lua (2020)
- Форум Изменение скрипта aa-recorder (2018)
- Форум init.d запускает 2 процесса при тесте. при ребуте сервис не запускается (2015)