Don't try to forward input when we already ordered shutdown. Check return codes on sends
This commit was SVN r23328.
Этот коммит содержится в:
родитель
628936a99f
Коммит
26fbae447e
@ -35,6 +35,7 @@
|
|||||||
#include "orte/mca/errmgr/errmgr.h"
|
#include "orte/mca/errmgr/errmgr.h"
|
||||||
#include "orte/runtime/orte_globals.h"
|
#include "orte/runtime/orte_globals.h"
|
||||||
#include "orte/mca/grpcomm/grpcomm.h"
|
#include "orte/mca/grpcomm/grpcomm.h"
|
||||||
|
#include "orte/util/name_fns.h"
|
||||||
|
|
||||||
#include "orte/mca/iof/iof.h"
|
#include "orte/mca/iof/iof.h"
|
||||||
#include "orte/mca/iof/base/base.h"
|
#include "orte/mca/iof/base/base.h"
|
||||||
@ -60,6 +61,16 @@ int orte_iof_hnp_send_data_to_endpoint(orte_process_name_t *host,
|
|||||||
opal_buffer_t *buf;
|
opal_buffer_t *buf;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
/* if the host is a daemon and we are in the process of aborting,
|
||||||
|
* then ignore this request. We leave it alone if the host is not
|
||||||
|
* a daemon because it might be a tool that wants to watch the
|
||||||
|
* output from an abort procedure
|
||||||
|
*/
|
||||||
|
if (ORTE_JOB_FAMILY(host->jobid) == ORTE_JOB_FAMILY(ORTE_PROC_MY_NAME->jobid)
|
||||||
|
&& orte_job_term_ordered) {
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
buf = OBJ_NEW(opal_buffer_t);
|
buf = OBJ_NEW(opal_buffer_t);
|
||||||
|
|
||||||
/* pack the tag - we do this first so that flow control messages can
|
/* pack the tag - we do this first so that flow control messages can
|
||||||
@ -102,7 +113,7 @@ int orte_iof_hnp_send_data_to_endpoint(orte_process_name_t *host,
|
|||||||
/* send the buffer to the host - this is either a daemon or
|
/* send the buffer to the host - this is either a daemon or
|
||||||
* a tool that requested IOF
|
* a tool that requested IOF
|
||||||
*/
|
*/
|
||||||
if( ORTE_SUCCESS != (rc = orte_rml.send_buffer_nb(host, buf, ORTE_RML_TAG_IOF_PROXY,
|
if (0 > (rc = orte_rml.send_buffer_nb(host, buf, ORTE_RML_TAG_IOF_PROXY,
|
||||||
0, send_cb, NULL))) {
|
0, send_cb, NULL))) {
|
||||||
ORTE_ERROR_LOG(rc);
|
ORTE_ERROR_LOG(rc);
|
||||||
return rc;
|
return rc;
|
||||||
|
@ -71,8 +71,10 @@ void orte_iof_orted_send_xonxoff(orte_iof_tag_t tag)
|
|||||||
(ORTE_IOF_XON == tag) ? "xon" : "xoff"));
|
(ORTE_IOF_XON == tag) ? "xon" : "xoff"));
|
||||||
|
|
||||||
/* send the buffer to the HNP */
|
/* send the buffer to the HNP */
|
||||||
orte_rml.send_buffer_nb(ORTE_PROC_MY_HNP, buf, ORTE_RML_TAG_IOF_HNP,
|
if (0 > (rc = orte_rml.send_buffer_nb(ORTE_PROC_MY_HNP, buf, ORTE_RML_TAG_IOF_HNP,
|
||||||
0, send_cb, NULL);
|
0, send_cb, NULL))) {
|
||||||
|
ORTE_ERROR_LOG(rc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user