|
From: | Dan Kegel |
Subject: | Re: Recv blocks forever after close |
Date: | Wed, 18 Jun 2003 10:21:39 -0700 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020615 Debian/1.0.0-3 |
Ignasi Villagrasa wrote:
I'm developing a multi-threaded server based application and I've noticed a problem when closing a socket file descriptor from a thread and the corresponding recv socket function is running in other thread. Instead of returning, as documented, the function remains locked.I'm using Red Hat 7.2, and my program uses pthreads. I have found the same problem in http://sources.redhat.com/ml/bug-glibc/2001-05/msg00089.html two years ago. But this question has no reply.
My impression is that this is by design in Linux. See for example http://marc.theaimsgroup.com/?l=linux-kernel&m=104825031912688&w=2 Try calling shutdown() before close(), that will probably fix it for you. - Dan
[Prev in Thread] | Current Thread | [Next in Thread] |