Есть функция solve которая в 0.001% случаях может зависнуть. Ее нужно прервать по таймауту. Пишу: warn "started solve\n"; my $solution; eval { local $SIG{ALRM} = sub { die }; alarm 5; $solution = solve($lp); alarm 0; }; my $is_timeout = $@; delete_lp($lp); if ($is_timeout) { warn "time out\n"; } else { warn "sol $solution\n"; if ($solution == $INFEASIBLE) { # INCONSISTENCIES DETECTED return 0; } } Пишет в stderr "started solve" и все, по таймауту не выходит, висит в 100% CPU. В чем проблема? как решить?
.png)


Ответ на:
комментарий
от tailgunner

Ответ на:
комментарий
от dilmah

Ответ на:
комментарий
от tailgunner

Ответ на:
комментарий
от swizard

Ответ на:
комментарий
от dilmah

Ответ на:
комментарий
от tailgunner

Ответ на:
комментарий
от dilmah

Ответ на:
комментарий
от tailgunner

Ответ на:
комментарий
от dilmah

Ответ на:
комментарий
от dilmah


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум помогите с сигаларм разобраться (2005)
- Форум perl, timeout при опросе ns серверов (2012)
- Форум Perl + FastCGI + nginx (2009)
- Форум Почему не работает скрипт? (2013)
- Форум perl таймаут (2009)
- Форум мониторинг изменений конфигурационных файлов системы (2007)
- Форум Perl: таймаут для <STDIN>, еще пару вопросов. (2008)
- Форум Система намертво зависает через некоторое время после запуска игр. (2024)
- Форум Исправление таймаута. (2014)
- Форум Таймаут GRUB2 (2013)