1
1

Fix a bug that caused proxies to duplicate subscriptions. Make sure to regenerate non-blocking receive after processing callbacks for timing reasons.

This commit was SVN r6059.
Этот коммит содержится в:
Ralph Castain 2005-06-14 20:10:00 +00:00
родитель a216a056c3
Коммит 62854316fb
2 изменённых файлов: 6 добавлений и 4 удалений

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

@ -91,6 +91,8 @@ orte_gpr_proxy_subscribe(orte_gpr_notify_action_t action,
return rc;
}
/* done */
return ORTE_SUCCESS;
}
cmd = OBJ_NEW(orte_buffer_t);

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

@ -62,16 +62,16 @@ 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 */
/* be sure to process callbacks */
if (!orte_gpr_replica.processing_callbacks) {
if (ORTE_SUCCESS != (rc = orte_gpr_replica_process_callbacks())) {
ORTE_ERROR_LOG(rc);
}
}
/* reissue the non-blocking receive before returning */
orte_rml.recv_buffer_nb(ORTE_RML_NAME_ANY, ORTE_RML_TAG_GPR, 0, orte_gpr_replica_recv, NULL);
OMPI_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex);
return;
}