close() of active socket does not work on FreeBSD 6

Arne H. Juul arnej at pvv.ntnu.no
Mon Dec 11 16:50:24 PST 2006


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.

That's better than having it in the kernel and (IMHO) better than having N
implementation in various applications, especially since the applications
don't necessarily know enough about the internals of the thread library
and kernel interactions to get it right, much less efficient.

That said, copying the linux_close.c workaround in the Java VM seems to
solve my immediate problem, even if I think it's a bit ugly.  But I have
confidence that you can do a better and cleaner solution :-)

   -  Arne H. J.


More information about the freebsd-arch mailing list