Fix exit hang on linux

This commit is contained in:
Matthew Stratford 2022-03-19 16:01:37 +00:00
parent f7e71cc32e
commit a838ef7621

View file

@ -2,6 +2,7 @@
import multiprocessing
import time
import sys
import os
from typing import Any
import webbrowser
from setproctitle import setproctitle
@ -31,11 +32,14 @@ def startServer(notifications=False):
printer("Server dead. Exiting.")
if notifications:
notif("BAPSicle Server Stopped!")
sys.exit(0)
os._exit(0)
if server and server.is_alive():
printer("Terminating server.")
server.terminate()
printer("Waiting to terminate.")
server.join(timeout=20) # If we somehow get stuck stopping BAPSicle let it die.
printer("Terminated")
# Catch the handler being killed externally.
except Exception as e:
@ -80,9 +84,10 @@ if __name__ == "__main__":
type(e).__name__, e
)
)
sys.exit(1)
os._exit(1)
sys.exit(0)
os._exit(0)
else:
startServer()
sys.exit(0)
printer("Exiting.")
os._exit(0)