Hi,
Vermutlich reden wir gerade aneinander vorbei.
Es gibt verschiedene Möglichkeiten, deadlocks zu verhindern.
Klaus hat sich entschieden, dass sich in VDR jeder thread an eine vorgegebene Reihenfolge halten muss.
- Wenn sich jeder thread an diese Reihenfolge hält, kann es keine deadlocks geben
- Wenn sich ein thread nicht an diese Reihenfolge hält, kann es deadlocks geben.
- VDR kann prüfen, ob sich die threads an diese Reihenfolge halten.
- Nur wenn VDR bei dieser Prüfung feststellt, dass sich ein thread nicht an diese Reihenfolge hält, gibt VDR den "invalid lock sequence report" aus.
- Wenn VDR den "invalid lock sequence report" ausgibt, hält sich mindestens ein thread nicht an die Reihenfolge. Damit kann es deadlocks geben (siehe Punkt 2).
Die Praxis hat gezeigt, dass, wenn es deadlocks geben kann, es normalerweise auch deadlocks gibt. Je nach dem, wie häufig das passiert, restartet der User dann die Anwendung und kann damit leben. Sehr wenige User haben die Fähigkeit und die Zeit, in so einem Fall nach der Ursache zu suchen.
Ob man das dann als einen Fehler empfindet, der behoben werden muss, oder einfach akzeptiert? Das darf jeder anders sehen.
~ Markus