Andreas Lindig: gibts sowas wie ... echtes filelocking? ;-)

Beitrag lesen

Es funktioniert -- auf Unix-Systemen. Auf Windows haengt es von der
PHP-Version ab.

laut PHP-Doku auch vom Dateisystem, wovon z.B. auch WIN98 betroffen ist.

Dir ist klar, dass die Datei nur zur Laufzeit gesperrt ist? Ist das
Script beendet, ist auch der Lock aufgehoben.

ich habe deshalb in die Testdatei ein sleep() eingebaut. Ob das nun zur Laufzeit zählt, weiß ich nicht. Aber was nützt mir das Ganze, wenn ich es nicht testen kann?

Mit solchen Aktionen baut man sich sehr schnell entweder Deadlocks oder race conditions.

Ich glaube nicht. Ich gebe die Datei automatisch nach einer festgelegten Zeit (im Moment 30 Sekunden) wieder frei. Ist getestet und funktioniert.

"race conditions" ist, wenn ich richtig nachschlage, der Vorgang, daß Prozess B die Daten von Prozess A überschreibt. Auch das wird vor dem Schreiben der Datei nochmal überprüft. Kommt mir sehr unwahrscheinlich vor. Der Prozess darf nur schreiben, wenn er nach allen Datenänderungen immer noch im Besitz der aktuellen lock-ID ist.

Ich wuerde mir das ueberlegen.

Im Moment lieber nicht. Ich will das auch irgendwann mal fertig haben - fürs Erste jedenfalls. Gegen Änderungen irgendwann mal ist grundsätzlich nichts einzuwenden. Ich habe mich mehrmals nach dem Thema hier erkundigt und bin nicht zu zufriedenstellenden Ergebnissen gekommen. Lieber so als einen groben, nicht überprüfbaren Fehler mit der 'offiziellen' Methode.

Ich bitte auch zu bedenken, daß das Projekt in meinem Forum immer zur Diskussion stand und die Beteilligung der Devs etwa 0 war. Somit bin ich auf meine eigenen Ideen angewiesen und will als Entwickler auch mal entwickeln. Wenn ich immer wieder was übern Haufen schmeißen soll wird das nicht fertig.

Gruß, Andreas

--
SELFFORUM - hier werden Sie geholfen,
auch in Fragen zu richtiges Deutsch