funkce flock

Jan Veleta jan.veleta na spsselib.hiedu.cz
Pondělí Říjen 5 08:56:53 MEST 1998


Muze mi nekdo vysvetlit, jak presne funguje flock?

mam napr. nasledujici usek kodu:


#!/usr/bin/perl

(open OUTFILE, '+<input.txt') or die"nejde otevrit input.txt\n";
$dat=`date`;
flock OUTFILE, 2; #exclusive lock

seek OUTFILE, 0, 2; #skoc na konec
print OUTFILE "nejaky text\n"; 
seek OUTFILE, 0, 0; # zacatek
print OUTFILE "posledni zmena: $dat\n"; 

flock OUTFILE, 8; #unlock
close OUTFILE

a neni mi jasne, jestli kdyz je soubor uzamcen, tak jestli
druhy proces, ktery do nej zapisuje pri "flock OUTFILE, 2;" ceka, jestli 
nedojde k uvolneni a za chvili to skusi znovu nebo neco jineho.

Mam vyzkouseno, ze kdyz kod zacyklim od jednoho flocku ke druhemu, takze soubor
je vlastne skoro porad zamceny a pokusim se obdobnym skriptem do nej zapsat,
tak se vse provede korektne.

Zajimalo by mne, jak dlouho flock ceka (vim, ze kdyz nemuze zamknout,
tak vrati false)

Honza



Další informace o konferenci Perl