On Mon, Jun 26, 2000 at 02:17:18PM +0100, Alan Cox wrote:
> > > > It would probably make sense to set shutdown flags in flush and do a
> > > > sk->state_change();
> > >
> > > That breaks inetd
> >
> > In which way ?
>
>
> Server Client
>
> accept
> fork -------------------------->
> close fd begin using fd
> calls flush method
> sets shutdown flag
> dies horribly
The question is not about breaking inetd. Certainly, fd closing should be
an operation without side effects and shouldn't interfere with socket
operations on other processes sharing it. Otherwise any program with open
sockets is forbidden to fork and do independent things in the two branches.
So, I think, the answer for the original question should be that the
observed behavior (blocking recvmsg) is intended.
Best regards
Andrey
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/