X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=udp_recv.c;h=316957d51050fc6e2751bfd6a48f9d1034a9e285;hp=4f363ccb7f15b65273867526dcd43e9a98337b9c;hb=e5b21a60d783f22886a8671b7be444f1e1205c14;hpb=4d4379901a0a01859728d56795a7ab6ada9c876b diff --git a/udp_recv.c b/udp_recv.c index 4f363ccb..316957d5 100644 --- a/udp_recv.c +++ b/udp_recv.c @@ -92,6 +92,9 @@ static void udp_recv_post_select(__a_unused struct sched *s, struct task *t) if (iovcnt == 0) goto err; ret = para_readv(purd->fd, iov, iovcnt); + /* EAGAIN is possible even if FD_ISSET */ + if (ret < 0 && is_errno(-ret, EAGAIN)) + return; if (ret == 0) ret = -E_RECV_EOF; if (ret < 0)