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

Sergey Aleynikov sergey.aleynikov на gmail.com
Пт Янв 29 08:06:19 PST 2010


Hello,

29 января 2010 г. 18:06 пользователь Dmitry E. Oboukhov
<unera на debian.org> написал:
> стоит сабжевая задача.
>
> Для ее решения я пошел по пути описанному в perldoc -f alarm (на CPAN
> есть штук пяток модулей на эту тему например Sys::AlarmCall (он же
> рекомендован к употреблению в perlfaq), я про них знаю, но описанная
> здесь проблема в них во всех проявляется, потому стоит задача
> написания нового модуля, либо прийти к нереализуемости задачи), итак,
> в perldoc -f alarm пример:

Я не вижу решения в общем случае без создания нового процесса. Код
внутри может быть "злой" и перезапишет всё, что угодно - любой элемент
%SIG, или вообще скажет sigprocmask(SIG_BLOCK, ..).

Да и без переазписи сигналов. В нормальном коде можно прыгнуть на
несколько уровней вверх по стеку через Scope::Upper, но из обработчика
сигнала у меня это не вышло.

Best regards,
Sergey Aleynikov


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