Christian Kruse: gibts sowas wie ... echtes filelocking? ;-)

Beitrag lesen

你好 Andreas,

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.
Jepp, tut es.

demnach hätte sich bei den Tests aber für den jeweils zweiten Aufruf
innerhalb dieser Zeit ein "schon gesperrt" ergeben müssen...

Abhaengig von den o.g. Faktoren :)

Eine “Race Condition” tritt z. B. dann auf, wenn der Lock-Vorgang nicht
atomar ist. Also z. B. dann, wenn ich mit Lock-Dateien arbeite:
Prozess A prueft, ob die Datei vorhanden ist. Sie ist noch nicht
vorhanden und deshalb geraet A in den kritischen Bereich, wird dann
aber vom Scheduler schlafen gelegt um mit Prozess B fortzufahren.
Prozess B prueft dann auch, ob eine Lock-Datei vorhanden ist und
geraet auch in den kritischen Bereich. Beide legen eine Lock-Datei
an (auch eine nicht-atomare Operation). Wer hat nun den Lock?

der letzte eben. Aber deswegen wird bei mir _vor_ dem Auslesen gelockt
und vor dem Schreiben nochmal nachgesehen.

Tjor, aber das hilft dir nichts, wenn die Nachgucken-Funktion und das
anlegen des Locks, also beide Funktionen zusammen, nicht atomar sind :)

Whatever, ich red dir da nicht rein, aber wenn es kaputt geht, musst du
dich auch drum kuemmern *gg*

Ich wuerde mir das ueberlegen.
Im Moment lieber nicht. [...]
_Mir_ fliegt es ja nicht um die Ohren :)

wußte gar nicht, daß die SELF-Server explosiv sind ;-)
sieh Dir die Funktionen an, wenn es bei Dir ist, und wenns wirklich
zu grottenschlecht sein sollte, kannst Du ja immer noch meckern.

Ich meckere ja gar nicht, ich merke nur an, dass selbstgeschriebene
Locking-Funktionen einem oft um die Ohren fliegen. Ohne einen Semaphore
wuesste ich jetzt auch nicht, wie ich das machen sollte.

Ich bitte auch zu bedenken, daß das Projekt in meinem Forum immer
zur Diskussion stand und die Beteilligung der Devs etwa 0 war.
Tut mir leid, aber davon habe ich nichts mitbekommen

wie dem auch sei. Verstehe bitte, daß ich einfach anfangen wollte und
den Eindruck hatte, Diskussion ist da nicht sonderlich erwünscht. War
mir auch nicht danach, euch immer wieder mit Mails zu nerven.

Du, du bist der Programmierer :) Wie du das handhabst ist deine Sache. Da
rede ich dir nicht drein.

再见,
 CK

--
Ihr wisst nicht, wie man den Menschen dient. Wie sollt ihr wissen, wie man den Goettern dienen soll?
http://wwwtech.de/