Thread (37 messages) 37 messages, 7 authors, 2014-06-27

Re: recvmmsg() timeout behavior strangeness [RESEND]

From: Florian Westphal <fw@strlen.de>
Date: 2014-05-03 11:29:14
Also in: linux-man, lkml

Michael Kerrisk (man-pages) [off-list ref] wrote:
Reinvestigating the problem, I see that I got my description of the
behavior slightly wrong, although the fundamental problem remains.
Here's my improved formulation:
[..]
Since the timeout is only checked after the arrival of each datagram,
we can have scenarios like the following:

0. Assume a timeout of 10 (T) seconds, that vlen is 5, and the call
   is made at time X

1. First datagram arrives at time X+2.

2. Second datagram arrives at time X+4 secs

3. Third datagram arrives at time X+6 secs

4. No more datagrams arrive.

In this case, the call blocks forever. It hardly seems that this could
be intended behavior. The problem, of course is that the timeout is
checked only after receipt of a datagram.
Isn't that what MSG_WAITFORONE is supposed to solve?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help