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

Ruslan Zakirov ruslan.zakirov на gmail.com
Пт Янв 29 06:11:16 PST 2010


Нужно попробовать медленный sort за таймаутить.

2010/1/29 Dmitry E. Oboukhov <unera на debian.org>:
>
> MA> можно использовать "плохой" goto ;)
>
> MA> perl -E 'sub foo { eval "sleep 10" } { local $SIG{ALRM} = sub { goto EXIT; };
> MA> alarm 1; foo(); EXIT: alarm 0; say "exited" }'
>
> Урраа!! заработало!
>
> написал конструкцию:
>
>    for (my $i = 0; caller $i; $i++) {
>        printf "\t %s %s %s %s()\n", caller $i;
>    }
>
> в функцию SIGALRM и затем сделал goto внутрь основной функции, затем
> такую же конструкцию после метки.
>
> в итоге первый вывод показывает стек из 10 элементов, а после метки из
> трех!
>
> так что "плохой гото" не такой уж и плохой!
>
> спасибо большое!
> --
> ... mpd playing: Manowar - 01 Achilles, Agony And Ecstasy In Eight Parts
>
> . ''`.                               Dmitry E. Oboukhov
> : :’  :   email: unera на debian.org jabber://UNera@uvw.ru
> `. `~’              GPGKey: 1024D / F8E26537 2006-11-21
>  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iEYEAREDAAYFAkti6yIACgkQq4wAz/jiZTe91QCfRP1/5snP10qj01wiKbqghEt+
> tI8AmgIqRra2Ntk5jg+nkAcNRiLhVy6E
> =v0xq
> -----END PGP SIGNATURE-----
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>



-- 
Best regards, Ruslan.


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