This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] new tcp_open
- From: Andrew Cagney <ac131313 at cygnus dot com>
- To: "Martin M. Hunt" <hunt at redhat dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Mon, 03 Dec 2001 15:02:44 -0500
- Subject: Re: [RFA] new tcp_open
- References: <200112031918.LAA18199@cygnus.com>
Outch!
> /* Use Non-blocking connect. connect() will return 0 if connected already. */
> n = connect (scb->fd, (struct sockaddr *) &sockaddr, sizeof (sockaddr));
> if (n)
> {
Should this also be checking errno to confirm that it was EINPROGRESS?
Little point in trying to connect to a socket that isn't valid.
> t.tv_usec = 500000; /* 0.5 seconds */
>
> n = select (scb->fd + 1, &rset, &wset, NULL, &t);
> secs++;
> }
> while (n == 0 && secs <= TIMEOUT);
Can I just suggest tinkering with this so that the 15 seconds is clearer
- at present it happens cos 0.5 * 30 = 15.
> /* While we wait for the connect to complete */
> /* poll the UI so it can update or the user can */
> /* interrupt. */
That should be a single comment block.
Could you please also add a comment to serial.h indicating that
serial_open() has the potential to block so that the code must handle
that and a true asynchronous open() interface may need to eventually be
added to GDB.
The only other potential problem I can see is with FIONBIO. Hopefully
that is fairly common and where it turns out to not be available
something can be worked out.
Tried it on cygwin?
Otherwise, yes approved.
Andrew