commit 248ff3eac38703c968d5821b07a4355d6c818b34Author: Dave Goodell <goodell@mcs.anl.gov>Date: Tue Feb 23 12:50:59 2010 -0600 MSGWAIT+EOF is now erroneous in HYDU_sock_read(). Passing MSGWAIT indicates that failure to receive the whole message buffer should be treated as an error. Client code was written with this assumption in mind, now the implementation matches this assumption. Reviewed by balaji@.--- src/pm/hydra/utils/sock/sock.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)diff --git a/src/pm/hydra/utils/sock/sock.c b/src/pm/hydra/utils/sock/sock.cindex 0895e0d..0443edd 100644--- a/src/pm/hydra/utils/sock/sock.c+++ b/src/pm/hydra/utils/sock/sock.c@@ -237,6 +237,8 @@ HYD_status HYDU_sock_read(int fd, void *buf, int maxlen, int *count, HYDU_FUNC_ENTER();+ HYDU_ASSERT(maxlen, status);+ *count = 0; while (1) { do {@@ -249,8 +251,10 @@ HYD_status HYDU_sock_read(int fd, void *buf, int maxlen, int *count, } *count += tmp;- if (flag != HYDU_SOCK_COMM_MSGWAIT || *count == maxlen || tmp == 0)+ if (flag != HYDU_SOCK_COMM_MSGWAIT || *count == maxlen) break;+ else if (0 == tmp)+ HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "MSGWAIT requested but EOF encountered\n"); }; if (*count < 0)