X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=udp_recv.c;h=00ad3e2781745c2e04af80dc462b75171e380dd0;hp=8dc8edc0a3c9588492a47a5d6389236c601dbdbd;hb=ce20ee3c755b47f753f122b0fb58a481a0a9d7b9;hpb=85c25aaa851aa20aba167b0fa5c827d115079681 diff --git a/udp_recv.c b/udp_recv.c index 8dc8edc0..00ad3e27 100644 --- a/udp_recv.c +++ b/udp_recv.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2009 Andre Noll + * Copyright (C) 2005-2010 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -84,6 +84,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)