On Tue, Apr 03, 2007 at 10:42:39AM -0400, Bob Rossi wrote: > On Tue, Apr 03, 2007 at 10:13:20AM -0400, Bob Rossi wrote: > > On Mon, Apr 02, 2007 at 08:37:53PM -0400, Christopher Faylor wrote: > > > On Mon, Apr 02, 2007 at 08:07:23PM -0400, Bob Rossi wrote: > > > >I'm not exactly sure what has changed since the last release to cause > > > >this issue. However, here it is. > > > > > > > >When ctrl-z is typed, CGDB receives a SIGTSTP on both linux and cygwin. > > > >When CGDB is at the select loop and this happens on linux select returns > > > >-1 and errno is set to EINTR. My code simple does a 'continue' when this > > > >happens and the select loop is reentered. All works well. On cygwin, > > > >select does not return with -1. (I didn't check the return value but I > > > >can, I just compare to -1 in an if statement). In fact, select also > > > >detects that input is ready on stdin. This causes CGDB to get to a read > > > >system call (which is non blocking) and the read system call fails with > > > >errno set to EAGAIN. This causes CGDB to exit. > > > > > > > >The main loop looks something like this, > > > > if (select (max + 1, &rset, NULL, NULL, NULL) == -1) > > > > { > > > > if (errno == EINTR) > > > > continue; > > > > .. > > > > } > > > > > > > > if (FD_ISSET (STDIN_FILENO, &rset)) { > > > > handle_stdin > > > > } > > > > > > > >So, my question is, is there a bug with select on cygwin? Is select > > > >working properly and I should handle the read call differently? Why does > > > >it act differently than linux? > > > > > > You say that something changed between different releases but you don't > > > mention what those releases are. Is this releases of Cygwin? If so, > > > what releases? > > > > > > If this is as easy to demonstrate as you say, then a simple test case > > > is definitely called for. > > > > Hi Christopher, > > > > Attached is the test case. If I run it under linux, and then type ctrl-z, I > > never get into the user_input_loop call. If I run it in cygwin, I do. > > > > Hopefully I'm doing something wrong here. Please advise! > > Ouch. Attached.
Any idea if this is a bug in cygwin? I'm considering if I should rework my code to handle this case... Thanks, Bob Rossi -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/