Sync to PMIx master
Этот коммит содержится в:
родитель
a31ea2e780
Коммит
209600fe26
@ -30,7 +30,7 @@ greek=a1
|
||||
# command, or with the date (if "git describe" fails) in the form of
|
||||
# "date<date>".
|
||||
|
||||
repo_rev=git4dec948
|
||||
repo_rev=git0a8e0d9
|
||||
|
||||
# If tarball_version is not empty, it is used as the version string in
|
||||
# the tarball filename, regardless of all other versions listed in
|
||||
@ -44,7 +44,7 @@ tarball_version=
|
||||
|
||||
# The date when this release was created
|
||||
|
||||
date="Sep 21, 2015"
|
||||
date="Sep 23, 2015"
|
||||
|
||||
# The shared library version of each of PMIx's public libraries.
|
||||
# These versions are maintained in accordance with the "Library
|
||||
|
@ -809,6 +809,7 @@ static pmix_status_t recv_connect_ack(int sd)
|
||||
pmix_status_t rc;
|
||||
struct timeval tv, save;
|
||||
pmix_socklen_t sz;
|
||||
bool sockopt = true;
|
||||
|
||||
pmix_output_verbose(2, pmix_globals.debug_output,
|
||||
"pmix: RECV CONNECT ACK FROM SERVER");
|
||||
@ -816,14 +817,20 @@ static pmix_status_t recv_connect_ack(int sd)
|
||||
/* get the current timeout value so we can reset to it */
|
||||
sz = sizeof(save);
|
||||
if (0 != getsockopt(sd, SOL_SOCKET, SO_RCVTIMEO, (void*)&save, &sz)) {
|
||||
return PMIX_ERR_UNREACH;
|
||||
}
|
||||
|
||||
/* set a timeout on the blocking recv so we don't hang */
|
||||
tv.tv_sec = 2;
|
||||
tv.tv_usec = 0;
|
||||
if (0 != setsockopt(sd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv))) {
|
||||
return PMIX_ERR_UNREACH;
|
||||
if (ENOPROTOOPT == errno) {
|
||||
sockopt = false;
|
||||
} else {
|
||||
return PMIX_ERR_UNREACH;
|
||||
}
|
||||
} else {
|
||||
/* set a timeout on the blocking recv so we don't hang */
|
||||
tv.tv_sec = 2;
|
||||
tv.tv_usec = 0;
|
||||
if (0 != setsockopt(sd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv))) {
|
||||
pmix_output_verbose(2, pmix_globals.debug_output,
|
||||
"pmix: recv_connect_ack could not setsockopt SO_RCVTIMEO");
|
||||
return PMIX_ERR_UNREACH;
|
||||
}
|
||||
}
|
||||
|
||||
/* receive the status reply */
|
||||
@ -855,9 +862,11 @@ static pmix_status_t recv_connect_ack(int sd)
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* return the socket to normal */
|
||||
if (0 != setsockopt(sd, SOL_SOCKET, SO_RCVTIMEO, &save, sz)) {
|
||||
return PMIX_ERR_UNREACH;
|
||||
if (sockopt) {
|
||||
/* return the socket to normal */
|
||||
if (0 != setsockopt(sd, SOL_SOCKET, SO_RCVTIMEO, &save, sz)) {
|
||||
return PMIX_ERR_UNREACH;
|
||||
}
|
||||
}
|
||||
|
||||
return PMIX_SUCCESS;
|
||||
|
@ -114,7 +114,7 @@ static void scdes(pmix_shift_caddy_t *p)
|
||||
}
|
||||
PMIX_CLASS_INSTANCE(pmix_shift_caddy_t,
|
||||
pmix_object_t,
|
||||
scon, NULL);
|
||||
scon, scdes);
|
||||
|
||||
|
||||
#define PMIX_THREADSHIFT(r, c) \
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user