Add unlock/lock around the delivery of a local callback to remove thread-lock condition if the callback function attempts to re-enter the registry.
This commit was SVN r7678.
Этот коммит содержится в:
родитель
6c839048cf
Коммит
a47655b3fd
@ -72,10 +72,11 @@ int orte_gpr_replica_process_callbacks(void)
|
|||||||
/* Since this requestor is "local", we simply execute
|
/* Since this requestor is "local", we simply execute
|
||||||
* the callbacks ourself.
|
* the callbacks ourself.
|
||||||
*/
|
*/
|
||||||
|
OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex);
|
||||||
if (ORTE_SUCCESS != (rc = orte_gpr_replica_deliver_notify_msg(cb->message))) {
|
if (ORTE_SUCCESS != (rc = orte_gpr_replica_deliver_notify_msg(cb->message))) {
|
||||||
ORTE_ERROR_LOG(rc);
|
ORTE_ERROR_LOG(rc);
|
||||||
}
|
}
|
||||||
|
OPAL_THREAD_LOCK(&orte_gpr_replica_globals.mutex);
|
||||||
} else { /* remote request - send messages back */
|
} else { /* remote request - send messages back */
|
||||||
orte_gpr_replica_remote_notify(cb->requestor, cb->message);
|
orte_gpr_replica_remote_notify(cb->requestor, cb->message);
|
||||||
}
|
}
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user