From f7a6f002c733f999c2d9695b961f9bbfd6ed7f44 Mon Sep 17 00:00:00 2001 From: Benedek Racz Date: Sun, 31 May 2020 19:25:46 +0200 Subject: [PATCH] use psutil for child creation This solve #26 --- wexpect/console_reader.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/wexpect/console_reader.py b/wexpect/console_reader.py index 8689e76..f1b650a 100644 --- a/wexpect/console_reader.py +++ b/wexpect/console_reader.py @@ -97,10 +97,7 @@ class ConsoleReaderBase: logger.info('Spawning %s' % path) try: self.initConsole() - si = win32process.GetStartupInfo() - self.__childProcess, _, self.child_pid, self.child_tid = win32process.CreateProcess( - None, path, None, None, False, 0, None, None, si) - self.child_process = psutil.Process(self.child_pid) + self.child_process = psutil.Popen(path) logger.info(f'Child pid: {self.child_pid} Console pid: {self.console_pid}') @@ -137,10 +134,12 @@ class ConsoleReaderBase: logger.info('Host process has been died.') return - self.child_exitstatus = win32process.GetExitCodeProcess(self.__childProcess) - if self.child_exitstatus != win32con.STILL_ACTIVE: + try: + self.child_exitstatus = self.child_process.wait(0) logger.info(f'Child finished with code: {self.child_exitstatus}') return + except psutil.TimeoutExpired: + pass consinfo = self.consout.GetConsoleScreenBufferInfo() cursorPos = consinfo['CursorPosition']