summaryrefslogtreecommitdiff
path: root/apt/progress/old.py
diff options
context:
space:
mode:
Diffstat (limited to 'apt/progress/old.py')
-rw-r--r--apt/progress/old.py16
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):