summaryrefslogtreecommitdiff
path: root/apt
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2009-07-30 18:29:13 +0200
committerJulian Andres Klode <jak@debian.org>2009-07-30 18:29:13 +0200
commitbb517c1da9e82d36b2c599f308d5451be68fadcb (patch)
treea29f9eb357a50ef19f7ba79be53732b8acaf2533 /apt
parentd5465906199b5c866db900b99b59c107cb46055d (diff)
downloadpython-apt-bb517c1da9e82d36b2c599f308d5451be68fadcb.tar.gz
apt/progress/__init__.py: Fix InstallProgress.waitChild()
- Do not break out of InstallProgress.waitChild()'s loop just because it is hitting EINTR, but only on child exit or on ECHILD.
Diffstat (limited to 'apt')
-rw-r--r--apt/progress/__init__.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/apt/progress/__init__.py b/apt/progress/__init__.py
index b9288c2c..337bd161 100644
--- a/apt/progress/__init__.py
+++ b/apt/progress/__init__.py
@@ -112,7 +112,7 @@ class FetchProgress(object):
This happens eg. when the downloads fails or is completed.
"""
- def update_status_full(self, uri, descr, short_descr, status, file_size,
+ def update_status_full(self, uri, descr, short_descr, status, file_size,
partial_size):
"""Called when the status of an item changes.
@@ -291,7 +291,6 @@ class InstallProgress(DumbInstallProgress):
except select.error, (errno_, errstr):
if errno_ != errno.EINTR:
raise
- break
self.updateInterface()
try:
(pid, res) = os.waitpid(self.child_pid, os.WNOHANG)
@@ -300,6 +299,8 @@ class InstallProgress(DumbInstallProgress):
except OSError, (errno_, errstr):
if errno_ != errno.EINTR:
raise
+ if errno_ == errno.ECHILD:
+ break
return res
def run(self, pm):