Thread flock funktioniert nicht
(64 answers)
Opened by x-man at 2006-04-17 19:11
[quote=pq,18.04.2006, 14:31]
Code: (dl
)
1 use Fcntl qw(:flock :seek); Sorry, dass ich mich auch noch einmische: Imho ist es in der zitierte Code nicht 100% sicher. Wenn direkt nach dem "truncate" der Prozess gekillt wird (z. B. wegen einem Server-Neustart), ist die Datei leer. Meine vorgeschlagene Loesung: In eine zweite (gelockte) Datei schreiben, und wenn man fertig ist, ein atomares rename() benutzen, um die alte Datei zu ersetzen. Edit: Anmerkung: Dieses Vorgehen wuerde auch im Falle eines vollen Dateisystemes einer Korruption der Datei vorbeugen, wenn man die Rueckgabewerte von print und close ueberprueft.\n\n <!--EDIT|betterworld|1145377953--> Lieblingsmodule:
![]() ![]() |