Tom: flock - gleichzeitiger Dateizugriff

Beitrag lesen

Hello,

ganz klar ist mir das immer noch nicht. Soviel habe ich aber verstanden:

  1. der Rückgabewert von flock in einer Schleife zu pruefen macht keinen Sinn, da false erst eintritt, wenn der Versuch komplett abgebrochen wird.
  2. file_exists etc in einer Schleife zu pruefen ist nicht nett zum Provider (heb ich auf, falls ich nochmal Strato nehmen sollte)
  3. Es macht Sinn, eine extra Lockdatei anzulegen, diese zu locken und dann die eigentliche Datei zu modifizieren.

Nein.
Mit file_exists kannst Du schon mal gar nichts anfangen, da es mit NAMEN und nicht mit einem HANDLE (als Rückgabewert) arbeitet. Alle Funktionen über Namen sind nur "Pi mal Daumen". Die Aussagewerte haben nur Gültigkeit zum Zeitpunkt des Aufrufes der Funktion.

Selbstverständlich kann man flock() selber in einer Schleife aufrufen.
Nur was muss man denn tun, wenn es failed?

Muss man es dann einfach nochmal versuchen, oder muss man das Script oder den Teil des Scriptes dann einfach ignorieren und abbrechen? Das entscheidet doch der Programmierer.

Der denkbar schlechteste Weg wird aber das automatische Warten auf ein erteiltes Lock sein (also ohne LOCK_NB). Das blockiert eine Apache-Instanz[*] und lässt den User sinnlos auf eine Fehlanzeige warten.

[*] gilt auch für andere Webserver

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau