[Cascavel-pm] Controle de processo em perl

KLEBER payback em oi.com.br
Quinta Abril 5 10:11:15 PDT 2007


Tomo a liberdade de enviar-lhe(s) este email cujo o assunto é PERL pois 
talvez você ou alguém que conheça  possa me ajudar.
Estou escrevendo uma aplicação em perl  e preciso garantir que um
determinado processo seja executado de forma única ( sem concorrência ).

Pôr exemplo , uma função que atualiza uma tabela de agencia , ao ser
executada  , todas as outras funções que acessam esta tabela deve esperar
sua conclussão ( portanto deve-se formar uma fila de pedidos para
atendimento ).

Atualmente estou fazendo isto da seguinte maneira :
#
#      Permite executar um script por vez
#
denovo:
if ( -e "c:\\payback\\contabil\\tabelas\\agencia\\cgiaform.nul" ) { goto 
denovo; }
sysopen( TASK15,
"c:\\payback\\contabil\\tabelas\\agencia\\cgiaform.nul",
O_WRONLY|O_EXCL|O_CREAT  ) or warn ( goto denovo );
flock( TASK15, LOCK_EX ) or warn ( goto denovo );
---------------------------------
Instruções diversas em perl  5.8
--------------------------------
flock( TASK15, LOCK_UN );
close( TASK15 );
unlink( "c:\\payback\\contabil\\tabelas\\agencia\\cgiaform.nul" );
exit;

Acredito que deve existir uma maneira mais elegante de implementar esta
minha necessidade e estava imaginando o método de controle de processo PID 
( waitpid ).

Caso possua alguma informação a este respeito , agradeceria sua colaboração

Atenciosamente ,

 kleber




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