RE: UDP recvmsg blocks after select(), 2.6 bug?

David Schwartz
2004-10-21T01:45:57Z

> David Schwartz wrote:

> > Perhaps I missed the details, but under your proposal, how
> > do you predict
> > at 'select' time what mode the socket will be in at 'recvmsg' time?!

> Well, if you've got a blocking socket, and do a nonblocking read with
> MSG_DONTWAIT, everything works fine. You lose a bit of
> performance, but it works.
>
> The problem case is if you create a socket, set O_NONBLOCK, do
> select, clear
> O_NONBLOCK, then do a recvmsg().
>
> I suspect it's not a very common thing to do, so my proposal
> would still help
> the vast majority of existing apps.
>
> Chris

I think this is a reasonable thing to do. Applications that select in one
mode and then operate in another are rare, and the suggested change won't
break anything.

DS