post non-blocking recv before processing callbacks - as callback
could block - waiting for a gpr subscription This commit was SVN r5361.
Этот коммит содержится в:
родитель
0ac08d5f49
Коммит
eb7bf1ca58
@ -62,15 +62,14 @@ void orte_gpr_replica_recv(int status, orte_process_name_t* sender,
|
||||
ompi_output(0, "gpr replica: msg processing complete - processing callbacks");
|
||||
}
|
||||
|
||||
/* reissue the non-blocking receive before processing callbacks */
|
||||
orte_rml.recv_buffer_nb(ORTE_RML_NAME_ANY, ORTE_RML_TAG_GPR, 0, orte_gpr_replica_recv, NULL);
|
||||
|
||||
/* be sure to process callbacks before returning */
|
||||
if (ORTE_SUCCESS != (rc = orte_gpr_replica_process_callbacks())) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
}
|
||||
|
||||
OMPI_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex);
|
||||
|
||||
/* reissue the non-blocking receive */
|
||||
orte_rml.recv_buffer_nb(ORTE_RML_NAME_ANY, ORTE_RML_TAG_GPR, 0, orte_gpr_replica_recv, NULL);
|
||||
|
||||
return;
|
||||
}
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user