]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
hurdselect: remove dead code.
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Sat, 7 Feb 2015 21:18:03 +0000 (22:18 +0100)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Sat, 7 Feb 2015 21:18:03 +0000 (22:18 +0100)
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.

ChangeLog
hurd/hurdselect.c

index 97849df70686c7fcb051089e4ed70cbfcb74767c..4ba04cdd86b16c2b80007aad0d68f0e77032f3c5 100644 (file)
--- 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>
 
index bd31c94aae78735ff525d855110cb5dbfc4829b8..1d908548e24ecc140051b896d67e8dfbb602684c 100644 (file)
@@ -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;