Modifying sys_read to not check the event queue if timeout=0 and to never
use a timeout larger than the one passed in.
This commit is contained in:
parent
bdce610dee
commit
88069dff55
1 changed files with 6 additions and 1 deletions
|
@ -2769,7 +2769,9 @@ sys_select (n, rfds, wfds, efds, timeout)
|
|||
{
|
||||
if (!inhibit_window_system && rfds && FD_ISSET (0, rfds))
|
||||
return 1;
|
||||
else if (inhibit_window_system || noninteractive)
|
||||
else if (inhibit_window_system || noninteractive ||
|
||||
(timeout && (EMACS_SECS(*timeout)==0) &&
|
||||
(EMACS_USECS(*timeout)==0)))
|
||||
return select(n, rfds, wfds, efds, timeout);
|
||||
else
|
||||
{
|
||||
|
@ -2787,6 +2789,9 @@ sys_select (n, rfds, wfds, efds, timeout)
|
|||
EMACS_SET_SECS (one_second, 1);
|
||||
EMACS_SET_USECS (one_second, 0);
|
||||
|
||||
if (timeout && EMACS_TIME_LT(*timeout, one_second))
|
||||
one_second = *timeout;
|
||||
|
||||
if ((r = select (n, rfds, wfds, efds, &one_second)) > 0)
|
||||
return r;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue