Date: Fri, 21 Oct 2011 16:47:52 -0400
From: Ken Brown<kbrown@cornell.edu>
CC: Andreas Schwab<schwab@linux-m68k.org>, 9767@debbugs.gnu.org
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).