Merge pull request #3785 from rhc54/topic/lock
Fix a threadlock when notifying clients of failures
Этот коммит содержится в:
Коммит
e07ed6dccd
@ -240,9 +240,9 @@ void pmix2x_event_hdlr(size_t evhdlr_registration_id,
|
|||||||
size_t n;
|
size_t n;
|
||||||
opal_pmix2x_event_t *event;
|
opal_pmix2x_event_t *event;
|
||||||
|
|
||||||
opal_output_verbose(2, opal_pmix_base_framework.framework_output,
|
opal_output_verbose(2, opal_pmix_base_framework.framework_output,
|
||||||
"%s RECEIVED NOTIFICATION OF STATUS %d",
|
"%s RECEIVED NOTIFICATION OF STATUS %d",
|
||||||
OPAL_NAME_PRINT(OPAL_PROC_MY_NAME), status);
|
OPAL_NAME_PRINT(OPAL_PROC_MY_NAME), status);
|
||||||
|
|
||||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||||
|
|
||||||
|
@ -413,9 +413,11 @@ void pmix2x_server_deregister_client(const opal_process_name_t *proc,
|
|||||||
(void)strncpy(p.nspace, jptr->nspace, PMIX_MAX_NSLEN);
|
(void)strncpy(p.nspace, jptr->nspace, PMIX_MAX_NSLEN);
|
||||||
p.rank = pmix2x_convert_opalrank(proc->vpid);
|
p.rank = pmix2x_convert_opalrank(proc->vpid);
|
||||||
OPAL_PMIX_CONSTRUCT_LOCK(&lock);
|
OPAL_PMIX_CONSTRUCT_LOCK(&lock);
|
||||||
|
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||||
PMIx_server_deregister_client(&p, lkcbfunc, (void*)&lock);
|
PMIx_server_deregister_client(&p, lkcbfunc, (void*)&lock);
|
||||||
OPAL_PMIX_WAIT_THREAD(&lock);
|
OPAL_PMIX_WAIT_THREAD(&lock);
|
||||||
OPAL_PMIX_DESTRUCT_LOCK(&lock);
|
OPAL_PMIX_DESTRUCT_LOCK(&lock);
|
||||||
|
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user