The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Как ограничить время выполнения Perl блока таймаутом
use constant TIMEOUT => 1;
eval {
   local $SIG{ALRM} = sub { die "timeout during sysread\n"; };
   alarm(TIMEOUT);
   $read_flag = sysread($filehandle, $c, 1);
   alarm(0);
};
 
14.08.2002
Ключи: time, perl, file, timeout / Лицензия: CC-BY
Раздел:    Корень / Программисту и web-разработчику / Perl / Функции и модули в Perl

Обсуждение [ RSS ]
  • 1, Alex (?), 07:05, 10/09/2003 [ответить]  
  • +/
    Применение конечно намного шире нежели чем просто "die" внутри eval. Каждый новый alarm отменяет действие предыдущего и переустанавливает счетчик "секунд". Значение 0 отменяет alarm вообще.
    Не всегда alarm корректно отрабатывает под mod_perl.  В каждом случае надо пробовать отдельно.
     
  • 2, Дмитрий (??), 02:19, 15/07/2006 [ответить]  
  • +/
    Спасибо алекс
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру