]> git.phdru.name Git - bookmarks_db.git/blobdiff - subproc.py
Fix(parse_html): encode title to utf-8 as the last resort
[bookmarks_db.git] / subproc.py
index 502d5dd19190d6456128d89e40434386ea987713..b5944f90f87a8c1a9a5536c267ebd1d1b87e4f72 100755 (executable)
@@ -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)