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>
Этот коммит содержится в:
родитель
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
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user