hallo Tom,
Es ist sinnlos, locks nur atomar zu setzen.
Warum? Ich halte das keineswegs für sinnlos.
Man muss für sein Vorgangssystem eine Strategie entwickeln, die Dead-Locks verhindert.
Das mag schon, so pauschal gesagt, richtig sein. Aber man stößt beim Programmieren immer wieder auf irgendwelche Detailfragen, und _hier_ hat Rolf meines Erachtens eine ganz interessante Detailfrage erwischt.
Außerdem ist eine Schleife, die auf ein Lock wartet, nur dann sinnvoll, wenn sie eine Verzögerungszeit bis zum nächsten Lock berücksichtigt und eine Abbruchbedingung für die Anzahl der Retrys enthält sowie einen qualifizierten Fehlercode produziert.
Genau das hat Rolf bereits in seinem Beispielcode vorgegeben (falls ich das denn jetzt richtig gelesen habe).
Sonst ergibt das solch einen Unsinn, wie die flock()-Funktion von PHP, wenn man nicht dediziert LOCK_NB setzt. Das script wartet ggf. bis zum Script-Timeout auf das Lock.
Ich fürchte, du bist "PHP-befangen". Hier gehts aber um Perl.
Das ist weder benutzerfreundlich, noch förderlich für die Performance.
Richtig, spielt aber für die Fragestellung erstmal eine völlig untergeordnete Rolle.
Grüße aus Berlin
Christoph S.
mailto:christoph.schnauss@berlin.de
http://www.christoph-schnauss.de
ss:| zu:) ls:& fo:) va:) sh:| rl:|