1
1

When a daemon force-terminates, we don't get the show_help message it was trying to send because the message is at a lower priority than the termination event. Resolve this by putting the oob in its own progress thread. Also, use only that one thread by default - if someone needs more progress threads in the OOB, they can use the MCA param to get them.

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
Этот коммит содержится в:
Ralph Castain 2017-05-11 06:50:59 -07:00
родитель 0650d4141f
Коммит 9164afbb08

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

@ -55,11 +55,7 @@ orte_oob_base_t orte_oob_base = {0};
static int orte_oob_base_register(mca_base_register_flag_t flags) static int orte_oob_base_register(mca_base_register_flag_t flags)
{ {
if (ORTE_PROC_IS_APP || ORTE_PROC_IS_TOOL) { orte_oob_base.num_threads = 0;
orte_oob_base.num_threads = 0;
} else {
orte_oob_base.num_threads = 8;
}
(void)mca_base_var_register("orte", "oob", "base", "num_progress_threads", (void)mca_base_var_register("orte", "oob", "base", "num_progress_threads",
"Number of independent progress OOB messages for each interface", "Number of independent progress OOB messages for each interface",
MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
@ -95,6 +91,10 @@ static int orte_oob_base_close(void)
OBJ_RELEASE(cli); OBJ_RELEASE(cli);
} }
if (!ORTE_PROC_IS_APP && !ORTE_PROC_IS_TOOL) {
opal_progress_thread_finalize("OOB-BASE");
}
/* destruct our internal lists */ /* destruct our internal lists */
OBJ_DESTRUCT(&orte_oob_base.actives); OBJ_DESTRUCT(&orte_oob_base.actives);
@ -122,7 +122,11 @@ static int orte_oob_base_open(mca_base_open_flag_t flags)
opal_hash_table_init(&orte_oob_base.peers, 128); opal_hash_table_init(&orte_oob_base.peers, 128);
OBJ_CONSTRUCT(&orte_oob_base.actives, opal_list_t); OBJ_CONSTRUCT(&orte_oob_base.actives, opal_list_t);
orte_oob_base.ev_base = orte_event_base; if (ORTE_PROC_IS_APP || ORTE_PROC_IS_TOOL) {
orte_oob_base.ev_base = orte_event_base;
} else {
orte_oob_base.ev_base = opal_progress_thread_init("OOB-BASE");
}
#if OPAL_ENABLE_FT_CR == 1 #if OPAL_ENABLE_FT_CR == 1