close() of active socket does not work on FreeBSD 6
Daniel Eischen
deischen at freebsd.org
Mon Dec 11 17:09:03 PST 2006
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
More information about the freebsd-java
mailing list