Einzelnen Beitrag anzeigen

Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Wieso bekomme ich hier einen Deadlock?

  Alt 25. Mai 2010, 09:15
Nehmen wir mal einen typischen Beispieldurchlauf:
1. (Thread) Liste wird gesperrt.
2. (VCL) Liste soll abgerufen werden, ist aber noch gesperrt -> es wird gewartet, bis die Liste wieder frei ist.
3. (Thread) Synchronisiert Event-Aufruf mit VCL-Thread.
4. Der VCL-Thread kann den Aufruf aber noch gar nicht synchronisieren, weil noch auf das Unlocken der Liste gewartet wird.

Und da ham wir den Deadlock. Beide Threads warten.

Edit: Oder hab ich da irgendwas falsch verstanden?
  Mit Zitat antworten Zitat