summaryrefslogtreecommitdiff
path: root/src/xgselect.c
diff options
context:
space:
mode:
authorJan D <jan.h.d@swipnet.se>2010-09-26 17:39:10 +0200
committerJan D <jan.h.d@swipnet.se>2010-09-26 17:39:10 +0200
commit42d3022b00d62a27b9f3820b84032b92ac0b0363 (patch)
tree40bc94bf0aefc7c361ad91f5c3a916134dd9fabb /src/xgselect.c
parentfb5f3a23b58f1da26f3a7ec29e2517ce3856edbd (diff)
downloademacs-42d3022b00d62a27b9f3820b84032b92ac0b0363.tar.gz
* xgselect.c (xg_select): Clear file descriptors not set from rfds and wfds.
Diffstat (limited to 'src/xgselect.c')
-rw-r--r--src/xgselect.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/xgselect.c b/src/xgselect.c
index d93c1bdf405..a06713458a0 100644
--- a/src/xgselect.c
+++ b/src/xgselect.c
@@ -113,11 +113,17 @@ xg_select (max_fds, rfds, wfds, efds, timeout)
if (rfds && FD_ISSET (i, rfds)) ++retval;
else ++our_fds;
}
+ else if (rfds)
+ FD_CLR (i, rfds);
+
if (have_wfds && FD_ISSET (i, &all_wfds))
{
if (wfds && FD_ISSET (i, wfds)) ++retval;
else ++our_fds;
}
+ else if (wfds)
+ FD_CLR (i, wfds);
+
if (efds && FD_ISSET (i, efds))
++retval;
}