LINUX.ORG.RU

perl таймаут


0

0

подскажите как сделать таймаут на перле например если есть код:

while(1){ 1.оператор 2.оператор 3.оператор }

нужно чтобы за каждый цикл программа выполняла 1 оператор, потом начинала выполнять 2 и если 2 оператор выполняется слишком долго то переходила сразу к 3 оператору.

★★★★★

Ответ на: Re: perl таймаут от lodin

Re: perl таймаут

alarm и Time::Out не подходят извините забыл сказать что таймаут надо меньше 1 секунды. есть другие варианты?

TDrive ★★★★★ ()

Re: perl таймаут

Можно завязать все на Glib::Timeout, который умеет таймауты меньше секунды, но, естественно для этого понадобятся перловые биндинги для Glib'а.

d_a ★★★★★ ()
Ответ на: Re: perl таймаут от TDrive

Re: perl таймаут

$ perldoc -f alarm | grep -A6 Time::HiRes
               Time::HiRes module (from CPAN, and starting from Perl 5.8 part
               of the standard distribution) provides ualarm().  You may also
               use Perl’s four-argument version of select() leaving the first
               three arguments undefined, or you might be able to use the
               "syscall" interface to access setitimer(2) if your system
               supports it. See perlfaq8 for details.
Eshkin_kot ★★ ()
Ответ на: Re: perl таймаут от TDrive

Re: perl таймаут

> в CPAN его нету?

Не знаю, я средствами дистрибутива ставил (пакет glib-perl).

d_a ★★★★★ ()
Ответ на: Re: perl таймаут от Eshkin_kot

Re: perl таймаут

Во в Time::HiRes есть функция ualarm() такая же как alarm() только время в микросекундах :) всем спс.

TDrive ★★★★★ ()
Ответ на: Re: perl таймаут от TDrive

Re: perl таймаут

Вообще-то в Time::Out написано, что "при использовании Time::HiRes аларм будет действительным числом".

lodin ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.