mirror of
https://github.com/dkmstr/openuds.git
synced 2024-12-22 13:34:04 +03:00
Fix tunnel removal procedure on Mac Launcher
This commit is contained in:
parent
23a9465ae1
commit
45a4dec18f
@ -11,6 +11,7 @@ from PyQt5 import QtCore, QtWidgets, QtGui
|
||||
|
||||
SCRIPT_NAME = 'UDSClientLauncher'
|
||||
|
||||
|
||||
class UdsApplication(QtWidgets.QApplication):
|
||||
path: str
|
||||
tunnels: typing.List[subprocess.Popen]
|
||||
@ -22,6 +23,10 @@ class UdsApplication(QtWidgets.QApplication):
|
||||
self.lastWindowClosed.connect(self.closeTunnels) # type: ignore
|
||||
|
||||
def cleanTunnels(self) -> None:
|
||||
'''
|
||||
Removes all finished tunnels from the list
|
||||
'''
|
||||
|
||||
def isRunning(p: subprocess.Popen):
|
||||
try:
|
||||
if p.poll() is None:
|
||||
@ -30,13 +35,13 @@ class UdsApplication(QtWidgets.QApplication):
|
||||
logger.debug('Got error polling subprocess: %s', e)
|
||||
return False
|
||||
|
||||
for k in [i for i, tunnel in enumerate(self.tunnels) if not isRunning(tunnel)]:
|
||||
try:
|
||||
del self.tunnels[k]
|
||||
except Exception as e:
|
||||
logger.debug('Error closing tunnel: %s', e)
|
||||
# Remove references to finished tunnels, they will be garbage collected
|
||||
self.tunnels = [tunnel for tunnel in self.tunnels if isRunning(tunnel)]
|
||||
|
||||
def closeTunnels(self) -> None:
|
||||
'''
|
||||
Finishes all running tunnels
|
||||
'''
|
||||
logger.debug('Closing remaining tunnels')
|
||||
for tunnel in self.tunnels:
|
||||
logger.debug('Checking %s - "%s"', tunnel, tunnel.poll())
|
||||
@ -70,6 +75,6 @@ def main(args: typing.List[str]):
|
||||
|
||||
sys.exit(app.exec())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(args=sys.argv)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user