All pastes #1808269 Raw Edit

Dave

public text v1 · immutable
#1808269 ·published 2010-02-24 16:51 UTC
rendered paste body
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)