Thread open-Anweisung
(22 answers)
Opened by geloescht at 2012-06-24 00:30
Hi,
Race Conditions vermeidest Du, indem Du den Prozess "vom Lesen bis zum Zurückschreiben" atomar machst: Nicht mehr teilbar. D.h.: Code (perl): (dl
)
1 2 3 4 5 6 $fh->open($file, O_RDWR) or die $!; flock $fh, LOCK_EX; # Nummer lesen # Wert erhöhen # Truncate und Zurückschreiben $fh->close; # Buffer werden geleert, Datei wird geschlossen Das ist alles: jeder Prozess, der das LOCK bekommt, hat Lesen+Schreiben für sich allein, flock() bewirkt, dass weitere Prozesse warten. Prüfe, ob flock() einen wahren Wert zurückgibt, andernfalls ist flock() nicht wirksam (Warnung ausgeben). Rosti |