Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Programm und IDE frieren ein. Nur durch Neustart zu beheben (https://www.delphipraxis.net/162353-programm-und-ide-frieren-ein-nur-durch-neustart-zu-beheben.html)

Oracle 18. Aug 2011 15:43

Delphi-Version: 2007

Programm und IDE frieren ein. Nur durch Neustart zu beheben
 
Ich habe zur Zeit foldendes Verhalten in meiner Software für welches ich die Ursache nicht finden kann:

Das Programm an dem ich zur Zeit arbeite friert seit einigen Tagen sehr regelmässig ein. Das geschieht so, dass ich auch die IDE nicht mehr bedienen kann. Die Auslastung des PCs ist laut Taskmanager aber grade mal um die 5%.
Ich arbeite in meinem Programm mit mehreren Threads um eine Kamera auszulesen und die Bilddaten anzuzeigen.

Die Darstellung der Daten friert ebenso ein. Ich kann keine Buttons mehr drücken. Andere offene Programme wie den Firefox kann ich manchmal nebenbei noch aufrufen und auch bedienen.
Wenn ich dann die Delphi IDE über den Prozessmanager kille, dann geht diese zwar aus, allerdings nicht mein Programm.
Das Fenster meines Programms ist zwar nicht mehr sichtbar, aber im Taskmanager steht der Prozess noch drin. Diesen bekomme ich auch nicht gestoppt. Ich muss den Rechner erst neu booten, um den Prozess zu killen. Das ist sehr nervig, wenn man den Rechner ständig neu booten muss.

Hat irgendjemand eine Idee in welcher Richtung ich suchen kann. Kann ein Thread das Programm so blockieren?
Vielleicht sehe ich grad vor lauter Verzweiflung den Wald vor lauter Bäumen nicht.
Auf jeden Fall würde ich mich sehr freuen, wenn mir jemand weiterhelfen könnte.

DeddyH 18. Aug 2011 15:47

AW: Programm und IDE frieren ein. Nur durch Neustart zu beheben
 
Hast Du evtl. Deadlocks eingebaut? Zumindest klingt es nach etwas in dieser Richtung.

bernerbaer 18. Aug 2011 16:15

AW: Programm und IDE frieren ein. Nur durch Neustart zu beheben
 
Zitat:

Zitat von Oracle (Beitrag 1117890)
..Kann ein Thread das Programm so blockieren?
...

Ja kann er! Wie schon DeddyH gesagt hat, das sieht sehr nach einem Deadlock aus.
Bsp.: Du schickst einen Thread schlafen (Suspend) während er in einer Critical Section ist und der Hauptthread will auch auf die Critical Section zugreifen-> typischer Deadlock.

Oracle 18. Aug 2011 16:29

AW: Programm und IDE frieren ein. Nur durch Neustart zu beheben
 
Ok, in die Richtung hatte ich auch schon gedacht. Mich hat die geringe CPU Auslastung stutzig gemacht. Ein Deadlock würde also die CPU Last nicht in die Höhe treiben?

bernerbaer 18. Aug 2011 16:54

AW: Programm und IDE frieren ein. Nur durch Neustart zu beheben
 
Richtig, Bei meinem Beispiel stellt der Scheduler von Windows fest, dass ein Thread innerhalb einer Critical Section ist und sperrt nun den Zugriff auf diese Section (auch wenn der Thread nun schläft) für den Hauptthread -> der Deadlock ist da und aufwecken kannst du den Thread mit normalen Mitteln auch nicht mehr.

hathor 18. Aug 2011 16:58

AW: Programm und IDE frieren ein. Nur durch Neustart zu beheben
 
Teste das Programm doch mal ohne FIREFOX zu starten. Vielleicht liegt es an JAVA oder ADOBE FLASH PLAYER. Das ist alles schrottig programmiert!

himitsu 18. Aug 2011 19:54

AW: Programm und IDE frieren ein. Nur durch Neustart zu beheben
 
Zitat:

Zitat von bernerbaer (Beitrag 1117902)
Zitat:

Zitat von Oracle (Beitrag 1117890)
..Kann ein Thread das Programm so blockieren?
...

Ja kann er! Wie schon DeddyH gesagt hat, das sieht sehr nach einem Deadlock aus.
Bsp.: Du schickst einen Thread schlafen (Suspend) während er in einer Critical Section ist und der Hauptthread will auch auf die Critical Section zugreifen-> typischer Deadlock.

Noch typischer:

Man läuft in einem Thread in eine CriticalSection,
syncronisiert sich in den Hauptthread
und will dort ebenfalls in diese CriticalSection rein.

> Der Hauptthread wartet nun auf die Freigabe der CS und der andere Thread wartet auf den Haupthread.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 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