fix: implement forced exit on shutdown and enhance shutdown handling

This commit is contained in:
Vxrtrauter
2026-03-07 22:10:45 +01:00
parent eccdb2f068
commit f030795f10
4 changed files with 15 additions and 7 deletions
+2
View File
@@ -725,6 +725,8 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
def closeEvent(self, event: QCloseEvent):
closehelper()
event.accept()
from core.utils.general.shutdown import force_exit
force_exit()
def eventFilter(self, obj, event):
try:
+6 -2
View File
@@ -6,6 +6,7 @@ import threading
import libtorrent as lt
from core.utils.data.state import state
from core.utils.logging.logs import consoleLog
from core.utils.general.shutdown import shutdown_event
global loop_running
@@ -116,9 +117,12 @@ def dl_status_loop():
loop_running = False
return
while state.active_downloads:
while state.active_downloads and not shutdown_event.is_set():
for magnet_uri, magnetdl in list(state.active_downloads.items()):
status = magnetdl.status()
try:
status = magnetdl.status()
except RuntimeError:
continue
if status.state == lt.torrent_status.seeding and magnet_uri not in completed_set:
consoleLog(f"Download completed: {status.name}")
+4 -3
View File
@@ -1,9 +1,10 @@
import threading
from core.network.libtorrent_misc import cleanup_session
from core.utils.general.wrappers import run_thread
import os
shutdown_event = threading.Event()
def closehelper():
run_thread(threading.Thread(target=cleanup_session))
shutdown_event.set()
def force_exit():
os._exit(0)
+2 -1
View File
@@ -33,7 +33,8 @@ def run_gui():
def keyboardinterrupthandler(signum, frame):
closehelper()
windowCloseHelper()
from core.utils.general.shutdown import force_exit
force_exit()
def main():
start_time = time.perf_counter()