lock-order um deadlocks zu vermeiden



  • Hi,

    wenn ich alle locks in einem (Sub-)System durchnummeriere, z.B. L1, L2, ..., Ln und wann immer ich ein oder mehrere dieser locks benötige diese in aufsteigender Folge anfordere, z.B. L1, L3, L5 oder L4, L7, L9 dann können keine deadlocks auftreten egal in welcher Reihenfolge ich die Locks freigebe, oder nicht? Denke schon den ganzen Tag darüber nach, aber finde kein Gegenbeispiel, andererseits kommt mir das zu einfach vor ...

    Gruß.



  • Das ist so einfach, solange Du alle wieder freigibst, wovon ich ausgehe.

    Natürlich ist Locken von L1 L3 L5, dann Unlocken von nur L1, dann nochmal versuchen, L1 zu kriegen, verboten, weil es wie Locken von L3 L5 L1 ist. Aber wer macht denn sowas?



  • volkard schrieb:

    Das ist so einfach, solange Du alle wieder freigibst, wovon ich ausgehe.

    Natürlich ist Locken von L1 L3 L5, dann Unlocken von nur L1, dann nochmal versuchen, L1 zu kriegen, verboten, weil es wie Locken von L3 L5 L1 ist. Aber wer macht denn sowas?

    Also ein einzelner Thread gibt alle locks frei bevor er sich neue locks holt. Dann gibt es ja keine Probleme, oder?



  • Multitasker schrieb:

    Also ein einzelner Thread gibt alle locks frei bevor er sich neue locks holt. Dann gibt es ja keine Probleme, oder?

    Jup. Genau so hat es Prof Groote mir beigebracht und es leuchtet mir auch ein.


Log in to reply