--- 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