Thread flock funktioniert nicht (64 answers)
Opened by x-man at 2006-04-17 19:11

Dubu
 2006-04-18 04:09
#7347 #7347
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=pq,18.04.2006, 00:32]wieso kann es zu datenverlust kommen? ich mache ein open(), dann ein flock(). erst, wenn die datei freigegeben ist, wird mein eigener lock aktiv. und dann bearbeite ich die datei. wenn ich sie nicht gerade mit ">" geöffnet habe, wo sollen da daten verloren gehen?[/quote]
Genau das macht der OP aber in seinem Code, siehe oben, 3. Beitrag. Kein Wunder, dass es schief geht.

Diesen Artikel aus "Writing CGI Applications with Perl" finde ich nebenbei ziemlich schwach. Der Autor kritisiert einen Code, der flock() nutzt und Race Conditions zeigt. Statt diese Race Conditions zu beseitigen (was problemlos ginge, siehe "perldoc -q 'get locking'", da wird das gleiche Problem gelöst), schlägt er Lockdateien vor, ohne auf deren Nachteile hinzuweisen (Crash der Applikation oder Server-Neustart können z.B. zu verwaisten Lockdateien führen) und Abhilfe zu zeigen (Abräumen veralteter Lockdateien), und zeigt dann Beispiel-Code, der beim flock() der Lockdatei selber wieder eine Race Condition hat (hier aber ohne große Auswirkungen, da der Inhalt der Datei nie ausgewertet wird)!

View full thread flock funktioniert nicht