close() of active socket does not work on FreeBSD 6
Kostik Belousov
kostikbel at gmail.com
Tue Dec 12 06:38:19 PST 2006
On Tue, Dec 12, 2006 at 09:08:30AM -0500, Daniel Eischen wrote:
> On Tue, 12 Dec 2006, Kostik Belousov wrote:
>
> >On Tue, Dec 12, 2006 at 08:18:32AM -0500, Daniel Eischen wrote:
> >>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).
>
> Even when SA_RESTART is set?
Yes. Since SA_RESTART causes syscall to be reissued, read()
would fail with EBADFD on its own.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-arch/attachments/20061212/34ddde3a/attachment.pgp
More information about the freebsd-arch
mailing list