diff options
Diffstat (limited to 'libports')
-rw-r--r-- | libports/manage-one-thread.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libports/manage-one-thread.c b/libports/manage-one-thread.c index 4ea740b2..cbd2df7d 100644 --- a/libports/manage-one-thread.c +++ b/libports/manage-one-thread.c @@ -85,7 +85,14 @@ ports_manage_port_operations_one_thread (struct port_bucket *bucket, return status; } - + + /* XXX It is currently unsafe for most servers to terminate based on + inactivity because a request may arrive after a server has + started shutting down, causing the client to receive an error. + Prevent the service loop from terminating by setting TIMEOUT to + zero. */ + timeout = 0; + do err = mach_msg_server_timeout (internal_demuxer, 0, bucket->portset, timeout ? MACH_RCV_TIMEOUT : 0, timeout); |