This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: Socket's close() doesn't close connection (old bug?)
- From: Martin Egholm Nielsen <martin at egholm-nielsen dot dk>
- To: java at gcc dot gnu dot org
- Date: Wed, 09 Nov 2005 20:25:56 +0100
- Subject: Re: Socket's close() doesn't close connection (old bug?)
- References: <dkqf0k$q5g$1@sea.gmane.org> <43723A00.7000503@avtrex.com>
Hi Daney,
In my eager to reproduce another bug I've stumbled across yet another
strange issue - namely that Socket's close() doesn't close underlying
socket (with no traffic), nor "wake up" a blocked read-thread (as a
consequence)...
Blah blah blah, this turned out to be reported already:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15430
Unfortunately still open ;-)
Check the above PR for my little C program the demonstrates how by
adding a call to shutdown() before the close() that the blocked read()
returns. I think with a small amount of hacking we can use this
technique to terminate the blocked thread with the proper exception
being thrown.
Really?! Reading here:
http://www.ecst.csuchico.edu/~beej/guide/net_old/#closedown
shutdown(s, SHUT_RDWR);
and
close(s);
are identical...
But maybe invoking it two times in a row does the magic?!
// Martin