wrs-socket: simplify the code retrieving timestamps
This turns the while(1) with internal retry++ to a loop based on retry.
With two changes:
1- when recvmsg() gets EAGAIN (or other errors), we loop over instead
of returning. Maybe this doesn't happen anymore thanks to the change
from POLLIN to POLLERR (previous commit), but this is philosophically
correct anyways.
2- we don't print anything when poll() returns 0, as these messages
were redundant, especially when there were many in a row. And if
nothing is there we expect to get 0. So we removed these:
poll_tx_timestamp: poll() = 0 (Success)
Still, knowing the timestamp was late is useful, but a single message
suffices, and it's there now. If you wonder why we loop instead of
using a longer timeout, the reason is we must get rid of timestamps
for older frames (the ones that timeout at the previous iteration).
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
Showing
Please
register
or
sign in
to comment