eh, racing conditions again.
kada otvoris fajl za pisanje preko "obicnog" open brise se sadrzaj bio fajl lock-ovan ili ne. koristiti sysopen i otvarati/lockovati fajl samo jednom (ovo sam mucki testirao u paralelnim threadovima i radi bez greske):
Code:
use Fcntl qw(:DEFAULT :flock);
sysopen(FH, $filename, O_RDWR | O_CREAT) or die "can't open file: $!";
flock(FH, LOCK_EX) or die "can't write-lock file: $!";
while ( <FH> ) { $completeTxt .= $_ }
# process here
seek(FH, 0, 0) or die "can't rewind file : $!";
print FH $completeTxt or die "can't write file: $!";
truncate(FH, tell(FH)) or die "can't truncate file: $!";
close(FH) or die "can't close file: $!";
(naravno, u "process here" deo umetnuti
Code:
$completeTxt++;
u slucaju counter-a)
btw - hebesh counter - ovaj mali kod je dusu dao za on-line-backup; par regexpova da ocherupaju xml, i ne boli te glava koliko je mysql server stabilan.
= come get some =