summaryrefslogtreecommitdiff
path: root/apt-pkg/deb/dpkgpm.cc
diff options
context:
space:
mode:
authorMichael Vogt <egon@bottom>2007-09-10 16:22:53 +0200
committerMichael Vogt <egon@bottom>2007-09-10 16:22:53 +0200
commit60504a4198070671b2c4fe7045564f1d7a228f71 (patch)
tree6bc847b3a05de81eaf515f783cfa6f50876a1f1b /apt-pkg/deb/dpkgpm.cc
parenta3259857ed1ba6a5624c781e804f4c1a6bdb37aa (diff)
parentda50ba30b371f21f264c040ca9f2161771d55233 (diff)
* merged from the mvo branch
Diffstat (limited to 'apt-pkg/deb/dpkgpm.cc')
-rw-r--r--apt-pkg/deb/dpkgpm.cc16
1 files changed, 10 insertions, 6 deletions
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
index 36086d72e..ac63ccfdf 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
@@ -818,12 +818,16 @@ bool pkgDPkgPM::Go(int OutStatusFd)
tv.tv_sec = 1;
tv.tv_usec = 0;
select_ret = select(max(master, _dpkgin)+1, &rfds, NULL, NULL, &tv);
- if (select_ret < 0) {
- std::cerr << "Error in select()" << std::endl;
- continue;
- } else if (select_ret == 0)
- continue;
-
+ if (select_ret == 0)
+ continue;
+ else if (select_ret < 0 && errno == EINTR)
+ continue;
+ else if (select_ret < 0)
+ {
+ perror("select() returned error");
+ continue;
+ }
+
if(master >= 0 && FD_ISSET(master, &rfds))
DoTerminalPty(master);
if(master >= 0 && FD_ISSET(0, &rfds))