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