Mail Archives: cygwin/2007/04/02/23:04:24
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?
I'm sorry, it's late for me, and my sentence was very poorly phrased.
cgdb-0.6.3 seems to not have this problem. svn trunk, which is going
to become cgdb-0.6.4, does have this problem.
> If this is as easy to demonstrate as you say, then a simple test case
> is definitely called for.
OK, I will try.
I could also try doing a binary search between cgdb-0.6.3 and svn trunk.
I guess I was wondering if this was known issue.
I will let you know what my results are.
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/
- Raw text -