From a65236214d9202fb69a6ba5169d4ac1a4bcb0b0d Mon Sep 17 00:00:00 2001 From: Alan Third Date: Wed, 8 Mar 2017 00:40:05 +0000 Subject: [PATCH] Add missing timeout value in ns_select * src/nsterm.m (ns_select): Set timeout to distant future when relying on fd_handler's timeout. --- src/nsterm.m | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/nsterm.m b/src/nsterm.m index ebe29e42619..f985786e198 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -4168,10 +4168,16 @@ ns_select (int nfds, fd_set *readfds, fd_set *writefds, /* Inform fd_handler that select should be called */ c = 'g'; emacs_write_sig (selfds[1], &c, 1); + + /* We rely on fd_handler timing out to cause + nextEventMatchingMask below to return, so set it's timeout to + an unreasonably long time. */ + timeout_date = [NSDate distantFuture]; } else if (nr == 0 && timeout) { - /* No file descriptor, just a timeout, no need to wake fd_handler */ + /* No file descriptor, just a timeout, no need to wake + fd_handler. Set nextEventMatchingMask timeout. */ double time = timespectod (*timeout); timeout_date = [NSDate dateWithTimeIntervalSinceNow: time]; } -- 2.39.5