Begin to "leak" the changes to the registry and supporting subsystems to resolve the flood situation and support abnormal terminations. These changes just define a new message structure for returning all startup/shutdown information in a single broadcast-like transmission. Shouldn't have any impact on existing code as the message object isn't used yet.
This commit was SVN r3311.
Этот коммит содержится в:
родитель
e6066c59f2
Коммит
3e19906b95
@ -495,6 +495,26 @@ ompi_rte_int_valuepair_destruct(ompi_object_t *obj)
|
||||
if (NULL != valpair->value) free(valpair->value);
|
||||
}
|
||||
|
||||
/** constructor for \c ompi_startup_shutdown_message_t */
|
||||
static
|
||||
void
|
||||
ompi_startup_shutdown_message_construct(ompi_startup_shutdown_message_t *msg)
|
||||
{
|
||||
msg->msg = NULL;
|
||||
}
|
||||
|
||||
|
||||
/** destructor for \c ompi_startup_shutdown_message_t */
|
||||
static
|
||||
void
|
||||
ompi_startup_shutdown_message_destruct(ompi_startup_shutdown_message_t *msg)
|
||||
{
|
||||
if (NULL != msg->msg) {
|
||||
OBJ_RELEASE(msg->msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** create instance information for \c ompi_rte_node_schedule_t */
|
||||
OBJ_CLASS_INSTANCE(ompi_rte_node_schedule_t, ompi_list_item_t,
|
||||
ompi_rte_int_node_schedule_construct,
|
||||
@ -510,3 +530,7 @@ OBJ_CLASS_INSTANCE(ompi_rte_valuepair_t, ompi_list_item_t,
|
||||
/** create instance information for \c ompi_rte_node_allocation_data_t */
|
||||
OBJ_CLASS_INSTANCE(ompi_rte_node_allocation_data_t, ompi_object_t,
|
||||
NULL, NULL);
|
||||
/** create instance information for \c ompi_startup_shutdown_message_t */
|
||||
OBJ_CLASS_INSTANCE(ompi_startup_shutdown_message_t, ompi_list_item_t,
|
||||
ompi_startup_shutdown_message_construct,
|
||||
ompi_startup_shutdown_message_destruct);
|
||||
|
@ -81,6 +81,18 @@ extern "C" {
|
||||
|
||||
OMPI_DECLSPEC extern ompi_universe_t ompi_universe_info;
|
||||
|
||||
/* Define the startup/shutdown xcast message format for sending information
|
||||
* from compound registry commands at the beginning and end of processes.
|
||||
*/
|
||||
|
||||
struct ompi_startup_shutdown_message_t {
|
||||
ompi_list_item_t item;
|
||||
ompi_registry_notify_message_t *msg;
|
||||
};
|
||||
typedef struct ompi_startup_shutdown_message_t ompi_startup_shutdown_message_t;
|
||||
|
||||
OBJ_CLASS_DECLARATION(ompi_startup_shutdown_message_t);
|
||||
|
||||
/**
|
||||
* Initialize the Open MPI support code
|
||||
*
|
||||
|
@ -39,7 +39,8 @@ int ompi_rte_universe_exists()
|
||||
char *contact_file;
|
||||
int ret;
|
||||
ompi_process_name_t proc={0,0,0};
|
||||
bool ns_found=false, gpr_found=false, ping_success=false;
|
||||
/* bool ns_found=false, gpr_found=false; */
|
||||
bool ping_success=false;
|
||||
|
||||
/* if both ns_replica and gpr_replica were provided, check for contact with them */
|
||||
if (NULL != ompi_process_info.ns_replica && NULL != ompi_process_info.gpr_replica) {
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user