Thread Flock mit timeout
(14 answers)
Opened by freddy at 2009-08-08 20:01
So wie es ausschaut hast du die Funktionsweise von flock() nicht richtig verstanden.
Wenn du flock() aufrufst dann wartet der Befehl solange bis es die datei locken kann. Wenn ein anderes Programm eine Stunde die Befehl lockt, dann würde der aufruf von flock() ebenfalls eine stunde dauern und dein programm würde solange stehen bleiben. flock() liefert NICHT den Status zurück ob eine Datei gelockt wurde oder nicht. Sondern es wartet bis es die datei locken kann, lockt es und fährt dann fort. Daher ein normaler umgang damit schaut so aus: flock() wartet eben solange bis die datei gelockt werden konnte. Wenn du nur maximal drei sekunden warten möchtest dann müsstest du beispielsweise ein ALARM Handler aufsetzen der nach drei sekunden mit die() abbricht, und dass du dann mit eval {} abfängst. Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|