1
1

Separate abnormal job termination from abnormal orted termination so we can continue to use xcast for orted cmds, but can know to turn off reading of stdin as the job is being terminated.

This commit was SVN r20650.
Этот коммит содержится в:
Ralph Castain 2009-02-27 10:16:25 +00:00
родитель 4f75f6e443
Коммит b8ffa302da
5 изменённых файлов: 8 добавлений и 5 удалений

Просмотреть файл

@ -66,7 +66,7 @@ void orte_errmgr_default_proc_aborted(orte_process_name_t *name, int exit_code)
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
ORTE_NAME_PRINT(name), exit_code));
orte_abnormal_term_ordered = true;
orte_job_term_ordered = true;
/* indicate that all jobs other than the one containing this
* proc have been orted to abort - this is necessary to avoid
@ -131,7 +131,7 @@ void orte_errmgr_default_incomplete_start(orte_jobid_t job, int exit_code)
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
ORTE_JOBID_PRINT(job), exit_code));
orte_abnormal_term_ordered = true;
orte_job_term_ordered = true;
/* tell the plm to terminate all jobs */
if (ORTE_SUCCESS != (rc = orte_plm.terminate_job(ORTE_JOBID_WILDCARD))) {

Просмотреть файл

@ -46,7 +46,7 @@
static void restart_stdin(int fd, short event, void *cbdata)
{
if (NULL != mca_iof_hnp_component.stdinev &&
!orte_abnormal_term_ordered) {
!orte_job_term_ordered) {
mca_iof_hnp_component.stdinev->active = true;
opal_event_add(&(mca_iof_hnp_component.stdinev->ev), 0);
}
@ -125,10 +125,10 @@ void orte_iof_hnp_read_local_handler(int fd, short event, void *cbdata)
/* is this read from our stdin? */
if (ORTE_IOF_STDIN & rev->tag) {
/* if an abnormal termination has occurred, just ignore the
/* if job termination has been ordered, just ignore the
* data and delete the read event
*/
if (orte_abnormal_term_ordered) {
if (orte_job_term_ordered) {
OBJ_RELEASE(mca_iof_hnp_component.stdinev);
OPAL_THREAD_UNLOCK(&mca_iof_hnp_component.lock);
return;

Просмотреть файл

@ -70,6 +70,7 @@ static void process_msg(int fd, short event, void *cbdata)
if (ORTE_IOF_XON & stream) {
/* re-start the stdin read event */
if (NULL != mca_iof_hnp_component.stdinev &&
!orte_job_term_ordered &&
!mca_iof_hnp_component.stdinev->active) {
mca_iof_hnp_component.stdinev->active = true;
opal_event_add(&(mca_iof_hnp_component.stdinev->ev), 0);

Просмотреть файл

@ -81,6 +81,7 @@ orte_trigger_event_t orte_exit, orteds_exit;
int orte_exit_status = 0;
bool orte_abnormal_term_ordered = false;
bool orte_routing_is_enabled = false;
bool orte_job_term_ordered = false;
int orte_heartbeat_rate;
int orte_startup_timeout;

Просмотреть файл

@ -460,6 +460,7 @@ ORTE_DECLSPEC extern orte_trigger_event_t orte_exit, orteds_exit;
ORTE_DECLSPEC extern int orte_exit_status;
ORTE_DECLSPEC extern bool orte_abnormal_term_ordered;
ORTE_DECLSPEC extern bool orte_routing_is_enabled;
ORTE_DECLSPEC extern bool orte_job_term_ordered;
ORTE_DECLSPEC extern int orte_heartbeat_rate;
ORTE_DECLSPEC extern int orte_startup_timeout;