Ejemplo n.º 1
0
 def wait(self):
     """Wait for child process to terminate.  Returns returncode
     attribute."""
     if self.returncode is None:
         _subprocess.WaitForSingleObject(self._handle, _subprocess.INFINITE)
         self.returncode = _subprocess.GetExitCodeProcess(self._handle)
     return self.returncode
 def terminate(self):
     try:
         _subprocess.TerminateProcess(self._handle, 1)
     except OSError as e:
         if e.winerror != 5:
             raise
         rc = _subprocess.GetExitCodeProcess(self._handle)
         if rc == _subprocess.STILL_ACTIVE:
             raise
         self.returncode = rc
Ejemplo n.º 3
0
 def terminate(self):
     '''
     Terminates the process
     '''
     try:
         _subprocess.TerminateProcess(self._handle, 1)
     except OSError:
         # ERROR_ACCESS_DENIED (winerror 5) is received when the
         # process already died.
         ecode = _subprocess.GetExitCodeProcess(self._handle)
         if ecode == _subprocess.STILL_ACTIVE:
             raise
         self.exitstatus = ecode
Ejemplo n.º 4
0
 def wait(self, timeout=None):
     if self.returncode is None:
         if timeout is None:
             msecs = _subprocess.INFINITE
         else:
             msecs = max(0, int(timeout * 1000 + 0.5))
         res = _subprocess.WaitForSingleObject(int(self._handle), msecs)
         if res == _subprocess.WAIT_OBJECT_0:
             code = _subprocess.GetExitCodeProcess(self._handle)
             if code == TERMINATE:
                 code = -signal.SIGTERM
             self.returncode = code
     return self.returncode
Ejemplo n.º 5
0
 def terminate(self):
     """Terminates the process
     """
     try:
         _subprocess.TerminateProcess(self._handle, 1)
     except OSError as e:
         # ERROR_ACCESS_DENIED (winerror 5) is received when the
         # process already died.
         if e.winerror != 5:
             raise
         rc = _subprocess.GetExitCodeProcess(self._handle)
         if rc == _subprocess.STILL_ACTIVE:
             raise
         self.returncode = rc
Ejemplo n.º 6
0
 def _Popen_terminate(self):
     """taken from subprocess.py of python 2.7"""
     try:
         _subprocess.TerminateProcess(self._handle, 1)
     except OSError:
         ex = sys.exc_info()[1]
         # ERROR_ACCESS_DENIED (winerror 5) is received when the
         # process already died.
         if ex.winerror != 5:
             raise
         rc = _subprocess.GetExitCodeProcess(self._handle)
         if rc == _subprocess.STILL_ACTIVE:
             raise
         self.returncode = rc
 def wait(self):
     if self.returncode is None:
         _subprocess.WaitForSingleObject(self._handle, _subprocess.INFINITE)
         self.returncode = _subprocess.GetExitCodeProcess(self._handle)
     return self.returncode