Thema: Delphi VCL not thread save

Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#8

AW: VCL not thread save

  Alt 8. Mär 2014, 17:40
Kann da wirklich eine Endlosschleife auftreten oder meinen die eher ein Deadlock? Soweit ich weiß, sendet Synchronize eine Message an den Thread und wartet anschließendä vermutlich auf ein Signal (Lock). Wie eine Endlosscheife entstehen sollte, kann ich mir nicht so richtig vorstellen, Deadlock wäre dagegen logisch, weil die Message ja nicht abgearbeitet werden kann, während der Aufrufer-Thread blockiert.

Abgesehen davon meine ich aber mal den Source-Code von Synchronize gelesen zu haben, und wenn ich mich recht erinnere, war da am Anfang eine Weiche drin, die prüft ob GetCurrentThread = Ziel-Thread.

Kann natürlich sein, dass das erst in späteren Versionen in die RTL eingebaut wurde. Aber mindestens seit Delphi 2006 sollte es dann schon drin sein.
  Mit Zitat antworten Zitat