Hi!
Ein simples
flock($fh, LOCK_EX);
vor dem Auslesen zum anschließenden Schreiben reicht doch dafür völlig. Das ist doch kein Aufwand.
Nur dass man flock() in einer Schleife so lange wiederholen muss, bis es true liefert (was wohl oft schon beim ersten Aufruf der Fall sein dürfte).
Nein. LOCK_EX ist blocking, wartet also darauf, dass es die Freigabe bekommt. Ob es ein Timeout gibt, wenn das zu lange dauert, steht nicht im PHP-Handbuch. Einige User-Kommentare sagen, dass da nur die generelle Script-Laufzeitbegrenzung einen Abbruch hervorruft.
Lo!