[Cascavel-pm] NFS x flock

Gabriel Vieira gabriel.vieira em gmail.com
Quinta Fevereiro 9 16:34:11 PST 2006


Nesse caso.. qual a utilidade do flock?

----- Original Message ----- 
From: "Nilson Santos Figueiredo Junior" <acid06 em gmail.com>
To: <breno em clavis.com.br>; "Cascavel Perl Mongers" <cascavel-pm em pm.org>
Sent: Thursday, February 09, 2006 11:10 PM
Subject: Re: [Cascavel-pm] NFS x flock


On 2/9/06, Breno G. de Oliveira <breno em clavis.com.br> wrote:
> O processo A executa o trecho "if(! -e $lockfile)" e, como não existe o
> arquivo, ele entra no laço. Só que antes de executar a instrução
> seguinte, ele é escalonado e dá lugar para o outro processo, o B.
>
> Esse, por sua vez, executa o trecho "if(! -e $lockfile)" e, como AINDA
> não existe o arquivo, ele *também* entra no laço. Ele então cria o
> arquivo e continua seu processamento até também ser escalonado, dando
> lugar de volta para o processo A.

É só, ao invés de abrir o lock e fechar em seguida, abrir com
exclusividade para escrita e só fechar o arquivo no final da região
crítica. Assim, o open() do segundo processo iria falhar ao tentar
abrir o arquivo, mesmo se ele entrasse no "if(! -e $lockfile)".

Na verdade, nesse caso, o "if(! -e $lockfile)" talvez pudesse até ser
removido e confiar apenas no sucesso ou não do open().

-Nilson Santos F. Jr.
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm 



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