From c3010778d5846f0f16278f8e94763efb59cd5761 Mon Sep 17 00:00:00 2001 From: Richard Braun Date: Fri, 30 Aug 2019 01:16:37 +0200 Subject: hurd: Fix timeout handling in _hurd_select Rely on servers to implement timeouts, so that very short values (including 0) don't make mach_msg return before valid replies can be received. The purpose of this scheme is to guarantee a full client-server round-trip, whatever the timeout value. This change depends on the new io_select_timeout RPC being implemented by servers. * hurd/Makefile (user-interfaces): Add io_reply and io_request. * hurd/hurdselect.c: Include , and . (_hurd_select): Replace the call to __io_select with either __io_select_request or __io_select_timeout_request, depending on the timeout. Count the number of ready descriptors (replies for which at least one type bit is set). Implement the timeout locally when there is no file descriptor. --- hurd/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'hurd/Makefile') diff --git a/hurd/Makefile b/hurd/Makefile index 99d33f9562..6d9cbf57a5 100644 --- a/hurd/Makefile +++ b/hurd/Makefile @@ -33,7 +33,8 @@ user-interfaces := $(addprefix hurd/,\ process process_request \ msg msg_reply msg_request \ exec exec_startup crash interrupt \ - fs fsys io term tioctl socket ifsock \ + fs fsys io io_reply io_request \ + term tioctl socket ifsock \ login password pfinet pci \ ) server-interfaces := hurd/msg faultexc -- cgit 1.4.1