eric6/E5Network/E5JsonServer.py

changeset 8303
0cbba94590d2
parent 8302
8feffa00a7d9
diff -r 8feffa00a7d9 -r 0cbba94590d2 eric6/E5Network/E5JsonServer.py
--- a/eric6/E5Network/E5JsonServer.py	Mon May 10 18:45:32 2021 +0200
+++ b/eric6/E5Network/E5JsonServer.py	Mon May 10 19:37:03 2021 +0200
@@ -258,13 +258,24 @@
                         QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
                     
                     # check if client exited prematurely
-                    state = proc.state()
-                    if state == QProcess.ProcessState.NotRunning:
+                    if proc.state() == QProcess.ProcessState.NotRunning:
                         exitCode = proc.exitCode()
                         proc = None
                         self.__clientProcesses[idString] = None
                         break
         else:
+            if proc:
+                timer = QTimer()
+                timer.setSingleShot(True)
+                timer.start(1000)           # 1s timeout
+                while timer.isActive():
+                    # check if client exited prematurely
+                    QCoreApplication.processEvents(
+                        QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
+                    if proc.state() == QProcess.ProcessState.NotRunning:
+                        exitCode = proc.exitCode()
+                        proc = None
+                        break
             self.__clientProcess = proc
         
         return proc is not None, exitCode

eric ide

mercurial