diff options
Diffstat (limited to 'apt/progress/old.py')
| -rw-r--r-- | apt/progress/old.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/apt/progress/old.py b/apt/progress/old.py index 05597481..88957272 100644 --- a/apt/progress/old.py +++ b/apt/progress/old.py @@ -315,14 +315,20 @@ class InstallProgress(DumbInstallProgress): while True: try: select.select([self.statusfd], [], [], self.select_timeout) - except select.error, e: - if e[0] != errno.EINTR: + except select.error, (errno_, errstr): + if errno_ != errno.EINTR: raise self.update_interface() - (pid, res) = os.waitpid(self.child_pid, os.WNOHANG) - if pid == self.child_pid: - break + try: + (pid, res) = os.waitpid(self.child_pid, os.WNOHANG) + if pid == self.child_pid: + break + except OSError, (errno_, errstr): + if errno_ != errno.EINTR: + raise + if errno_ == errno.ECHILD: + break return res def run(self, pm): |
