Re: close() of active socket does not work on FreeBSD 6
- From: Kostik Belousov <kostikbel@xxxxxxxxx>
- Date: Tue, 12 Dec 2006 15:56:47 +0200
On Tue, Dec 12, 2006 at 08:18:32AM -0500, Daniel Eischen wrote:
On Mon, 11 Dec 2006, Daniel Eischen wrote:
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 theIt should not be done in new thread library, do you want a bloat
thread library / kernel threads implementation and not in every
threaded application that needs it, in my view.
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.
It's also couldn't be entirely solved by fixing it in the
threads library. You could still have a non-threaded
application that waits on a read operation, but receives
a signal and closes the socket in the signal handler.
This is not the problem. The read (as syscall being executed) is aborted
when signal is delivered. Original poster considered situation where
read() is active (in particular, f_count of struct file is incremented
by fget, that caused the reported behaviour).
Attachment:
pgp02JpjqjxCl.pgp
Description: PGP signature
- Follow-Ups:
- Re: close() of active socket does not work on FreeBSD 6
- From: Daniel Eischen
- Re: close() of active socket does not work on FreeBSD 6
- References:
- Re: close() of active socket does not work on FreeBSD 6
- From: Kostik Belousov
- Re: close() of active socket does not work on FreeBSD 6
- From: Arne H. Juul
- Re: close() of active socket does not work on FreeBSD 6
- From: David Xu
- Re: close() of active socket does not work on FreeBSD 6
- From: Arne H. Juul
- Re: close() of active socket does not work on FreeBSD 6
- From: Daniel Eischen
- Re: close() of active socket does not work on FreeBSD 6
- From: Daniel Eischen
- Re: close() of active socket does not work on FreeBSD 6
- Prev by Date: Re: close() of active socket does not work on FreeBSD 6
- Next by Date: Re: close() of active socket does not work on FreeBSD 6
- Previous by thread: Re: close() of active socket does not work on FreeBSD 6
- Next by thread: Re: close() of active socket does not work on FreeBSD 6
- Index(es):
Relevant Pages
|
|