sys.exit()

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
webskipper
User
Beiträge: 15
Registriert: Freitag 9. Dezember 2011, 19:11

Ich habe gerade Probleme, meine Qt App nach einem Event / Signal ordnungsgemäß zu terminieren.
sys.exit() ist scheinbar eine Lösung, jedoch vermute ich, dass der Aufruf wenig ratsam ist.

Ich nehme an, es werden von Python weder Referenzen noch andere Bereiche im Arbeitsspeicher wieder freigegeben.
Was passiert mit dem reservierten Arbeitsspeicher ? Vergibt das Betriebssystem diesen neu oder sind die Adressräume
für eine Zeit belegt ?
deets

Du kannst beruhigt sys.exit aufrufen. Ob & was das Betriebssystem macht, ist alleine Sache des OS. Kannst du eh nicht kontrollieren. So sind gebundene Ports gelegentlich fuer eine Weile blockiert, ande Resourcen aber sofort wieder frei.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Das OS weiss, welche Ressourcen ein Prozess nutzt und kann deshalb aufraeumen, wenn es den Prozess nicht mehr gibt. Wie deeds schon sagte: Auf das wie & wann hast du so oder so keine Auswirkung.

Wenn du in einem Prozess sagst `socket.close` machst du nichts anderes als dem OS mitzuteilen, dass du den Socket nicht mehr brauchst, damit schliesst du ihn nicht.
lunar

@webskipper: Aus einer von Qt aus aufgerufenen Methode kannst Du "sys.exit()" nicht nutzen, da Ausnahmen die Qt-Ereignisschleife nicht passieren. Du musst "QApplication.instance().quit()" nutzen.
Antworten