I'm having a problem with recvfrom and recvmsg on linux. The problem
is as follows: immediately after poll returns with a POLLIN event on
the socket FID, I call recvfrom or recvmsg with the MSG_PEEK flag set.
I expect either to immediately return with an indication of how much
data is available. The problem is that they are blocking even though
poll just indicated that data was available. As far as I know, the
only way the recv functions can block when the MSG_PEEK flag is set is
if there is, in fact, no data available. The weird thing is ...