summaryrefslogtreecommitdiff
path: root/hurd
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2014-10-12 21:38:53 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2014-10-12 21:38:53 +0200
commit2092fb16bec256d9cfcd3bab79333b809843d976 (patch)
treeb5892fb653448dd1883b58430cabcd4b607f2013 /hurd
parent4892d7f32edd47f4381828218d72dd02f06b8a35 (diff)
parentc30b727f51a9678663788810a4ab0eb4b18071d4 (diff)
Merge branch 't/poll_errors_fixes' into refs/top-bases/tschwinge/Roger_Whittaker
Diffstat (limited to 'hurd')
-rw-r--r--hurd/hurdselect.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/hurd/hurdselect.c b/hurd/hurdselect.c
index b5ebf35a40..d104be07dc 100644
--- a/hurd/hurdselect.c
+++ b/hurd/hurdselect.c
@@ -544,7 +544,15 @@ _hurd_select (int nfds,
readiness of the erring object and the next call hopefully
will get the error again. */
if (type & SELECT_ERROR)
- type = SELECT_ALL;
+ {
+ type = 0;
+ if (readfds != NULL && FD_ISSET (i, readfds))
+ type |= SELECT_READ;
+ if (writefds != NULL && FD_ISSET (i, writefds))
+ type |= SELECT_WRITE;
+ if (exceptfds != NULL && FD_ISSET (i, exceptfds))
+ type |= SELECT_URG;
+ }
if (type & SELECT_READ)
ready++;