On 5/30/2016 4:02 PM, Ken Brown wrote: > On 5/26/2016 8:31 AM, Ken Brown wrote: >> This looks like a bug I reported several years ago; it actually has >> nothing to do with emacs: >> >> https://www.cygwin.com/ml/cygwin/2011-10/msg00445.html >> >> It was fixed but then reappeared some months later: >> >> https://www.cygwin.com/ml/cygwin/2012-05/msg00049.html >> >> It was fixed again but apparently is back. The test case from the >> original report still exhibits the problem. > > I've tracked down the commits that fixed this bug in the past. The first fix was > > commit 31d2bedc585420092eb53895c5f5646651f13215 > Author: Christopher Faylor > Date: Sun Oct 23 19:01:47 2011 +0000 > > * fhandler_tty.cc (fhandler_pty_slave::read): Use consistent way for testing > ReadFile return. > * pipe.cc (fhandler_pipe::create_selectable): Open the write side of the pipe > in message-mode to force writing as "chunks". Explain why. > > The second was > > commit fb9d631817cc2b5d83c2a6ff928851d201c992bf > Author: Christopher Faylor > Date: Fri May 4 03:00:43 2012 +0000 > > * DevNotes: Add entry cgf-000002. > * fhandler_tty.cc (bytes_available): Revert to previous Oct-2011 behavior where > a dummy buffer is used to determine how many bytes will be read. > (fhandler_pty_master::ioctl): Correct coercion in assignment. > > A few weeks later the code was simplified: > > commit bd8afa5eb160b56715b805befe850a5ba2131d28 > Author: Christopher Faylor > Date: Wed May 16 01:56:41 2012 +0000 > > * DevNotes: Add entry cgf-000008. > * fhandler_tty.cc (bytes_available): Simplify by returning the number of bytes > available in the message unless that is zero. > > I've looked at the current code in the vicinity of these changes, and nothing jumps out at me as obviously breaking the previous fixes; but that doesn't mean much. FWIW, if I take my original test case, as modified by cgf, and uncomment the line "sleep (1);", then the program finishes successfully. I don't know if that provides a clue. For convenience, I'm attaching the modified test case. Ken