summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2015-02-07 22:18:03 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2015-02-07 22:18:03 +0100
commitc187253fc222ed05de710d94b5bcaf02c3ef37c5 (patch)
tree149bbaf07278418e57f6da72e65f92d7381c6d93
parente9a5bc1c18b5acf3c8475e3f36431ac34bda9751 (diff)
downloadglibc-c187253fc222ed05de710d94b5bcaf02c3ef37c5.tar.gz
glibc-c187253fc222ed05de710d94b5bcaf02c3ef37c5.tar.xz
glibc-c187253fc222ed05de710d94b5bcaf02c3ef37c5.zip
hurdselect: remove dead code.
This removes code which actually never happens, and is already taken
care of in the function.

This is in the second part of select, when the __mach_msg() function
over the portset has returned something else than MACH_MSG_SUCCESS. I
guess in the past the value returned by __mach_msg() was stored in err,
so this code was necessary to set back err to 0, but now it is stored in
msgerr, so err is already still 0 by default. It can thus never contain
MACH_RCV_TIMED_OUT, i.e. the code is dead. The first case mentioned in
the comment is already handled: on time out with no message, err is
already still the default 0. On time out due to poll, err would still be
0, unless some of the io_select RPCs has returned EINTR, in which case
it contains EINTR. If any other io_select RPCs had returned a proper
answer, got!=0, and thus err is set to 0 just below. The code is thus
indeed not useful any more.
-rw-r--r--ChangeLog2
-rw-r--r--hurd/hurdselect.c7
2 files changed, 2 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 97849df706..4ba04cdd86 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -24,6 +24,8 @@
 	45.
 	* hurd/hurdselect.c (_hurd_select): Pass MACH_RCV_INTERRUPT to
 	__mach_msg.  If that returns MACH_RCV_INTERRUPTED, set ERR to EINTR.
+	* hurd/hurdselect.c (_hurd_select): Remove unreachable check for
+	MACH_RCV_TIMED_OUT.
 
 2015-02-06  Roland McGrath  <roland@hack.frob.com>
 
diff --git a/hurd/hurdselect.c b/hurd/hurdselect.c
index bd31c94aae..1d908548e2 100644
--- a/hurd/hurdselect.c
+++ b/hurd/hurdselect.c
@@ -407,13 +407,6 @@ _hurd_select (int nfds,
 	    }
 	}
 
-      if (err == MACH_RCV_TIMED_OUT)
-	/* This is the normal value for ERR.  We might have timed out and
-	   read no messages.  Otherwise, after receiving the first message,
-	   we poll for more messages.  We receive with a timeout of 0 to
-	   effect a poll, so ERR is MACH_RCV_TIMED_OUT when the poll finds no
-	   message waiting.  */
-	err = 0;
       if (msgerr == MACH_RCV_INTERRUPTED)
 	/* Interruption on our side (e.g. signal reception).  */
 	err = EINTR;