X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;ds=sidebyside;f=subproc.py;h=b5944f90f87a8c1a9a5536c267ebd1d1b87e4f72;hb=be7cec61fa405f38dea2edde623174ca47ca7dc3;hp=502d5dd19190d6456128d89e40434386ea987713;hpb=34b8d0278505311f33805a54bc758bc4b690c882;p=bookmarks_db.git diff --git a/subproc.py b/subproc.py index 502d5dd..b5944f9 100755 --- a/subproc.py +++ b/subproc.py @@ -143,7 +143,9 @@ class Subprocess: except os.error as error: errno, msg = error if errno == 10: + self.pid = None raise SubprocessError("Subprocess '%s' failed." % self.cmd) + self.pid = None raise SubprocessError("Subprocess failed[%d]: %s" % (errno, msg)) if pid == self.pid: # child exited already @@ -155,6 +157,7 @@ class Subprocess: "child killed by signal %d with a return code of %d" % (sig, rc)) if rc: + self.pid = None raise SubprocessError( "child exited with return code %d" % rc) # Child may have exited, but not in error, so we won't say @@ -325,7 +328,11 @@ class Subprocess: (sig[0], self.pid, self.cmd, hex(id(self))[2:]))) for i in self.pipefiles: - os.close(i) + try: + fp = os.fdopen(i).close() + except OSError: + pass + del self.pipefiles[:] self.pid = 0 return None # ===> time.sleep(.1)