AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wieso bekomme ich hier einen Deadlock?

Ein Thema von Zacherl · begonnen am 24. Mai 2010 · letzter Beitrag vom 26. Mai 2010
 
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#11

Re: Wieso bekomme ich hier einen Deadlock?

  Alt 25. Mai 2010, 08:31
Ich bin nicht sicher. Aber es wäre auf jeden Fall logisch:
1) Thread: sperrt die Liste
2) Thread: Ereigniss wird aufgerufen
3) VLC: sperrt die Liste (wartet auf Freigabe durch Thread)
4) Ereigniss im Thread-Context: synchronisiert mit der VCL

Die Frage ist, wie genau die Synchronisierung stattfindet. Wenn ich vorher von der VCL aus die Liste sperre, wartet der VCL Thread ja aud Freigabe durch den Thread. Synchronisiere ich jetzt im Ereigniss, wird der entsprechende Code ja im Context des VCL Threads ausgeführt.
Interessant ist allerdings jetzt zu wissen, wie das ganze von statten geht. Wird darauf gewartet, dass der VCL Thread irgendwie einen Context Switch durchführt, wäre das ganz klar der Grund für den Deadlock. Ist dies der Fall?

Ich frage deshalb, weil ich mal eine Funktion geschrieben hatte, die auch Code im Context eines fremden Threads ausführen kann. Dabei habe ich allerdings mit SetThreadContext() den EIP manipuliert. In diesem Falle würde der synchronisierte Code ja unabhängig vom Warten auf LockList ausgeführt, wonach dann wieder zum LockList Offset gesprungen wird.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz