Date: Mon, 11 Dec 2006 20:05:58 -0500 (EST) From: Daniel Eischen <deischen@freebsd.org> To: "Arne H. Juul" <arnej@pvv.ntnu.no> Cc: Kostik Belousov <kostikbel@gmail.com>, freebsd-arch@freebsd.org, David Xu <davidxu@freebsd.org>, freebsd-java@freebsd.org Subject: Re: close() of active socket does not work on FreeBSD 6 Message-ID: <Pine.GSO.4.64.0612111956110.2938@sea.ntplx.net> In-Reply-To: <Pine.LNX.4.62.0612120142010.30236@decibel.pvv.ntnu.no> References: <Pine.LNX.4.62.0612111535280.32258@decibel.pvv.ntnu.no> <20061211171115.GD311@deviant.kiev.zoral.com.ua> <Pine.LNX.4.62.0612112259050.12159@decibel.pvv.ntnu.no> <200612120816.07608.davidxu@freebsd.org> <Pine.LNX.4.62.0612120142010.30236@decibel.pvv.ntnu.no>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 12 Dec 2006, Arne H. Juul wrote: > On Tue, 12 Dec 2006, David Xu wrote: >> On Tuesday 12 December 2006 06:34, Arne H. Juul wrote: >> <snip> >>> This is exactly the sort of issue that should be solved by the >>> thread library / kernel threads implementation and not in every >>> threaded application that needs it, in my view. >>> >> It should not be done in new thread library, do you want a bloat >> and error-prone thread library ? Instead if this semantic is really >> necessary, it should be done in kernel. > > Well, it depends on the alternatives. > If a clean kernel implementation is possible - yes please, of course. > If only a complex, error-prone kernel implementation is possible, > I would prefer to have the complexity in the thread library. Hacking libthr or libpthread to do this for you is not an option. They would then look like libc_r since all fd's accesses would need to be wrapped. If this needs to be done, it must be in the kernel. Common sense leads me to think that a close() should release threads in IO operations (reads/writes/selects/polls) and return EBADF or something appropriate. At least when behavior is not dictated by POSIX or other historical/defactor behavior. -- DE
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.64.0612111956110.2938>