Jo, jetzt hab ichs verstanden, da hat der Kerl von Xwolf offensichtlich Blödsinn getextet, aber mir passt das alles irgendwie nicht so recht, ich glaube ich mach das ganze Fileflocking doch über flock-Dateien nach Cheatah's Methode a la datei.flock und das die Datei gelockt ist drückt sich dann einfach dadurch aus, daß die Datei nicht existiert! Dürfte einen ähnlichen Sicherheitsgrad wie flock() bieten...
Ich kenne Cheatah's Methode nicht. Wenn es etwas in der Art wie
while (-e 'datei.flock') {
sleep 1;
}
open LOCK, ">datei.flock";
close LOCK;
...
unlink "datei.flock"
ist, dann ist flock auf jeden Fall vorzuziehen. Testen und Anlegen von datei.flock sind hier nicht atomar, daher kann es immer noch zu gleichzeitigen Zugriffen kommen. Das laesst sich vielleicht umgehen in dem man es so macht:
while (!mkdir '.lock') {
sleep 1; # oder select oder sonstwas
}
Wenn die Datei bei einem unerwartetem Abbruch des Programm nicht geloescht wird, wird es natuerlich auch problematisch.
Soetwas ist ein Notnagel fuer Leute, die alberne Betriebssysteme einsetzen. Wenn flock() zur Verfuegung steht, sollte man es nutzen.
Peter