Subject: Re: bug#50043: 28.0.50; USABLE_SIGOI undef code paths do not work correctly

From: Eli Zaretskii <[email-masked]>
Date: Wed, 17 Nov 2021 18:56:59 +0200

> Date: Wed, 17 Nov 2021 09:59:35 -0500
> Cc: [email-masked], [email-masked]
> From: Ken Brown <[email-masked]>
> 
> > But maybe it will be better to do it the same way we
> > decrease the timeout when a timer is expected to expire before the
> > timeout: we decrease the timeout, but still remember its value, and
> > don't return from waiting before the timeout unless there really was
> > some input.  This would avoid affecting unrelated features such as
> > accept-process-output.
> 
> I think that's already taken care of.  The timeout is recalculated on each 
> iteration of the main while loop:
> 
>        /* Compute time from now till when time limit is up.  */
>        /* Exit if already run out.  */
>        if (wait == TIMEOUT)
> 	{
> 	  if (!timespec_valid_p (now))
> 	    now = current_timespec ();
> 	  if (timespec_cmp (end_time, now) <= 0)
> 	    break;
> 	  timeout = timespec_sub (end_time, now);
> 	}
>        else
> 	timeout = make_timespec (wait < TIMEOUT ? 0 : 100000, 0);
> 
> My reduction of timeout to 25 msec occurs after this.

So the result will be that on systems without USABLE_SIGIO we loop
more times with shorter timeouts for select?  If so, it SGTM.