[SP-pm] alarm()

Thomas Britis thomas em tcnet.com.br
Quarta Janeiro 30 10:45:26 PST 2008


Olá Luis,

	Obrigado pela resposta.

Luis Motta Campos wrote:
> Quer dizer: o sistema é uma merda, e você ainda paga por isso... é 
> lamentável. (um minuto de silêncio em luto)
	Nem sempre podemos mudar o mundo. Eu, pelo menos, tento uma coisa de 
cada vez. Não precisa ficar de luto, senão vc ficará de luto todo o tempo.
	Ainda mais se tratando de órgão público. Nem sempre o melhor é o que 
vai ser contratado. Vc está fora do Brasil e, talvez não se lembre como 
as coisas aqui funcionam.
	Mas, bola pra frente. Cada um fazendo sua parte por lá.

>    local $SIG{ALARM} = sub { die q{Acorda pra cuspir!}; };
>    for ( 0..10 ) { # para que isso?
>      alarm $timeout;
>      my ( $info );
>      eval { processa( busca_info( $_ ), $_ ); };
>      if( defined $@ && $@ eq q{Acorda pra cuspir!} ) {
>        # teu alarme deu timeout: loga o evento, next.
>        log( qq{Time out processando $_.} );
>        next;
>      }elsif( defined $@ ){
>        # deu merda, trata erro
>      } # else { # não acho que você precisa disso }
>    } # for

	Obrigado. Era exatamente o que eu procurava.

	Vou usar exatamente assim, $SIG{ALRM} = sub { die } e testando a 
variável $@ para ver se bate com o motivo do die (sem o defined, como a 
dica).

	Obrigado, mais uma vez.
-- 
Thomas Storino Britis
TCNet Informatica e Telecomunicacoes LTDA


Mais detalhes sobre a lista de discussão SaoPaulo-pm