mod: Datei organisisert sperren

Beitrag lesen

Hallo,

es geht konkret um die in ein ErrorHandling-Objekt implemetierte Errorlog-Datei für schwerwiegende Fehler gehen. Es geht um die Problematik, wenn 2 oder mehrere Script gleichzeitig auf error.log zu greifen. Die Scripte sollen nacheinander ihre Fehlermedlung ins die error.log schreiben nicht gleichzeitig, dazu habe ich flock() verwendet:

$this->logPath=' ... ';
$file = fopen( $this->logPath, 'c' ) or die('Unable to open errorlog file');
$success = flock( $file, LOCK_EX );

while( !$success ) {
    $success = flock( $file, LOCK_EX );
}

fwrite( $file, $this->logMessage ) or die('Unable to write in errorlog file');
flock( $file, LOCK_UN );
fclose( $file );

Die while()-Schleife könnte in eine Endlosschleife enden - kann man das verhintern und wie ? - vielleicht mit einer maximalen Anzahl von Aufrufen der flock()-Funktion ?

Gruß mod.