Hello,
So betrachtet gebe ich Dir Recht. Bei einem heißen System, bei dem also auch Änderungen am Datenstamm und/oder dem Funktionsumfang während des Betriebs astattfinden können, müssten die Includes() auch durch Locks abgesichert werden.
In dem Zusammenhang war ich gestern auch mal wieder bei Deinem Flatfile-Projekt vorbeischnuppern. Hast Du das mal über eine Semaphor versucht zu lösen oder ist Deine Methode hinreichend gut, um bei Hochbelastung eingesetzt zu werden?
Ich habe zwar nicht genau verstanden, wie Du die Frage nun meinst...
Pauschal möchte ich mal antworten: Es kommt immer darauf an, was in den angeforderten Ressourcen drinsteht und wie oft und von wem es wann geändert wird.
Ein einfaches fread() oder include() ist jedenfalls nicht atomar, da zu vermuten ist, dass die Daten aus der Ressource in Blöcken abgeholt werden. Es lässt sich dann durchaus von einem fwrite() ziwschen den einzelnen Blockread-Befehlen auch auf die Ressource schreiben.
PHP könnte das intern durch einen entsprechenden eigenen Mechanismus zwar regeln. Es müssten dann nur eigene Tabellen des Daemon geführt werden ähnlich der vorgeschlagenen Semaphore und atomaren Funktionen für Sperre und Freigabe.
Das würde aber im hetrogenen Programmumfeld auf einem Server nichts nützen. Da bräucht doch nur ein andere Prozess über PERL oder ein Executable direkt zugreifen. Einzig verantwortlich für die "Bentuztungskontrolle" von Ressourcen kann also das Betriebssystem sein.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau