Repository navigation
Cmd+Q: Hamlib-Daemon und Logbuch enden mit dem Programm - #414
Merged
Merged
Conversation
Unter macOS enden Cmd+Q und QCoreApplication::quit() in [NSApp terminate:] und damit in exit(), noch innerhalb von closeEvent(). aboutToQuit feuert dort nicht, und das MainWindow auf dem Stapel von main() wird nie zerstoert. ~HamlibDaemonProcess() lief also nie: rigctld blieb als Waise zurueck und hielt den Anschluss des TS-590 besetzt. Dasselbe gilt fuer rotctld. Laufende Daemons stehen jetzt in einer Liste, und ein atexit-Haken schickt ihnen SIGTERM. Der Pruefstand stirbt mit std::exit() wie Cocoa und ist ohne die Behebung rot. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bei Cmd+Q und quit() kommt exit() noch innerhalb von closeEvent(), und ~ContestFenster laeuft nie. Damit fiel die letzte Log-Sicherung des eingebetteten Logbuchs aus, samt Kopie in den zweiten Ordner. MainWindow::closeEvent() ruft schliesse() jetzt selbst, ganz hinten, damit der Zustand derselbe ist wie beim roten Punkt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Anlass
Nach dem Beenden von Longpath lief das
rigctlddes Begleitgeräts als Waise weiter (PPID 1) und hielt den Anschluss des TS-590 besetzt. Beim Nachsehen zeigte sich derselbe Weg beim eingebetteten Logbuch: Dessen letzte Sicherung fiel bei Cmd+Q aus.Ursache
Gemessen mit einer kleinen Sonde (Qt 6.11, macOS):
closeEventaboutToQuitexec()kehrt zurückatexitNSApp terminate:)QCoreApplication::quit()Das
exit()kommt noch innerhalb voncloseEvent(). Das passt zu den Longpath-Logs, die direkt nachAppSettings::save() doneenden. AuchaboutToQuithätte das Problem also nicht gelöst.Änderung
HamlibDaemonProcessführt die laufenden Daemons in einer Liste, und einatexit-Haken schickt ihnen SIGTERM. Das gilt fürrigctldundrotctld. Nur Unix; unter Windows bleibt alles beim Alten.MainWindow::closeEvent()ruftContestFenster::schliesse()ganz hinten auf, im selben Zustand wie beim roten Punkt. Damit laufen der Abbau des Controllers, die letzte Sicherung samt zweitem Ordner und die Freigabe der Sperre.Geprüft
tst_daemon_ueberlebt_beenden_nicht: Ein Helfer startet ein Doppel vonrigctldund stirbt mitstd::exit(). Rot gegen die alte Fassung, grün mit der Behebung.tst_cmdq_schliesst_das_logbuch: schließt das echte Hauptfenster, ohne es zu zerstören. Ohne den Aufruf bleibt die Sperre stehen und der Prüfstand wird rot, mit ihm grün.tst_contestfensterundtst_contest_panels_im_containers_menulokal grün.../Thetisund liefen hier nicht; dieser PR fasst deren Daten nicht an.Die Gegenstücke im Contestprogramm stehen in oe5sos/Contestprogramm#79.
🤖 Generated with Claude Code