[SP-pm] destruir um objeto e die
Frederico Recsky
frederico at gmail.com
Mon Dec 15 16:06:03 PST 2008
Olá,
2008/12/15 Otávio Fernandes <otaviof em gmail.com>:
> Fala Recsky,
>
> Eu tenho uma sugestão:
>
> BEGIN{ $SIG{__DIE__} = \&umount_volumes }
>
> sub umount_volumes {
> print "Desmontando os volumes X, Y e Z";
> }
>
> Acredito que esta é a forma mais simples de resolver o seu problema.
Sim, isso faz com que o die saia com o erro valor 255 :) e desmonte as
coisas. Porem meu destrutor fica vazio, e quando o programa precisa
sair normalmente preciso dele. Se o destrutor contem o umount também,
ele continua saindo com zero.
A saida, até meio pog. foi colocar uma flag no handler do sig die, e
depois com um END assim:
END {
$? = 1 if $die;
}
sub umount_volumes {
$die = 1;
}
Isso "arruma" a saida do processo mesmo quando o DESTROY coloca ela em
zero. Interessante que o handler do die é executado antes do Destroy e
que qualquer fork executado no destroy joga seu status como saida do
programa principal, ao meu ver isso é um bug.
Valeu Otavio :).
[]'s
--
____________________________
Frederico Recsky
Linux User: #253572
http://www.fred.eti.br
http://www.perl.org.br
More information about the SaoPaulo-pm
mailing list