Вообще все еще хуже...
я могу сделать local $GIG{ALRM} = sub { ... }
я могу поставить свой alarm
я могу работать с теми-же таймерами, что и alarm
alarm не работет при вызове XS
поэтому жесткого и гарантированного ограничения в рамках одного процесса быть
не может.
если очень-очень нужно, то надежным будет межпроцессное взаимодействие типа
if (my $pid = fork()) {
WAIT: {
for (1..N) {
waitpid ($pid,WNOHANG) == $pid and last WAIT;
sleep;
}
kill KILL => $pid;
waitpid $pid,0;
}
} else {
foo();
}
fork, sleep N, )
On Friday 29 January 2010 13:06:25 Dmitry E. Oboukhov wrote:
> стоит сабжевая задача.
>
> Для ее решения я пошел по пути описанному в perldoc -f alarm (на CPAN
> есть штук пяток модулей на эту тему например Sys::AlarmCall (он же
> рекомендован к употреблению в perlfaq), я про них знаю, но описанная
> здесь проблема в них во всех проявляется, потому стоит задача
> написания нового модуля, либо прийти к нереализуемости задачи), итак,
> в perldoc -f alarm пример:
--
Mons Anderson aka Vladimir Perepelitsa
<[email protected]> / #99779956 / [email protected]
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org