This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: TCP close(...) action
- From: Gary Thomas <gary at mlbassoc dot com>
- To: Matt Jerdonek <maj1224 at yahoo dot com>
- Cc: Discussion eCos <ecos-discuss at sources dot redhat dot com>
- Date: 18 Oct 2003 12:30:48 -0600
- Subject: Re: [ECOS] TCP close(...) action
- Organization: MLB Associates
- References: <20031018182440.65740.qmail@web14206.mail.yahoo.com>
On Sat, 2003-10-18 at 12:24, Matt Jerdonek wrote:
> Hi Folks,
>
> I have a simple program with two threads that send /
> recv from a single TCP socket. One thread blocks on a
> recv call while the other thread sends data on the
> same socket.
>
> I put a close call in the send thread. The expected
> behavior was for the recv thread to wake (with 0 bytes
> of data) and a FIN to be sent on the ethernet. The
> actual behavior was that the recv thread never woke
> and the FIN was not sent. (Is this intended or a
> bug?). I found the soclose function would not be
> invoked because the recv was still using the file
> handle. Once the recv released the file handle, the
> FIN flowed on the ethernet.
>
> I worked around this issue by calling
> cyg_thread_release from my application, which woke up
> the recv thread. But I wonder if there is better
> solution? Could (or should) the close call be made to
> wake up blocked threads? If so, any suggestions?
>
How did you create this socket? How did you set up
the send and receive threads? Maybe a code snippet would
help us understand your problem.
--
Gary Thomas <gary@mlbassoc.com>
MLB Associates
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss