[Moscow.pm] Ограничить время выполнения произвольной функции

Sergey Aleynikov sergey.aleynikov на gmail.com
Пт Янв 29 07:50:29 PST 2010


Hello,

> вот я нашел интересный хак, вроде работает:
>
> use strict;
> use Coro;
> $SIG{ALRM} = sub { warn "alarm\n"; cede };
> sub foo { eval "sleep 5;" }
> alarm(1);
> async(\&foo);
> cede;
> print "over\n";
> alarm(0);

"You must not switch to another coro from within a signal
handler...That means you MUST NOT call any function that might "block"
the current coro - cede, schedule..."

Best regards,
Sergey Aleynikov


Подробная информация о списке рассылки Moscow-pm