Subject: bug#9767: 24.0.90; gdb initialization on Cygwin

From: Eli Zaretskii <[email-masked]>
Date: Sat, 22 Oct 2011 00:15:45 +0200

> Date: Fri, 21 Oct 2011 16:47:52 -0400
> From: Ken Brown <[email-masked]>
> CC: Andreas Schwab <[email-masked]>, [email-masked]
> 
> OK, I figured out what's happening, and it is related to SIGALRM after 
> all.  In line 4406 of process.c, wait_reading_process_output reduces the 
> timeout for the select call (under certain circumstances) in an attempt 
> to prevent select from being interrupted by SIGALRM.  This seems to me 
> to be inherently unreliable, and, in particular, it consistently fails 
> on Cygwin.  In other words, the SIGALRM is delivered before select times 
> out, causing select to get interrupted.  So wait_reading_process_output 
> does indeed loop, and select fails every time (except when a key is 
> pressed).

Why does reducing the timeout works on, say, GNU/Linux, but not on
Cygwin?  What is different?  Clock granularity, perhaps?