1
1

Some cleanup at the end of the comm_spawn work.

Comm_spawn is now fully functional. I'll send out a separate message about some of the problems encountered, and resulting action items.

This commit was SVN r3770.
Этот коммит содержится в:
Ralph Castain 2004-12-10 02:34:19 +00:00
родитель 73a9e95816
Коммит 2ee47e0708
9 изменённых файлов: 44 добавлений и 7 удалений

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

@ -46,6 +46,7 @@ libmca_gpr_base_la_SOURCES = \
gpr_base_unpack_synchro.c \
gpr_base_pack_test_internals.c \
gpr_base_unpack_test_internals.c \
gpr_base_release_notify_msg.c \
gpr_base_select.c
# Conditionally install the header files

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

@ -176,6 +176,8 @@ extern "C" {
OMPI_DECLSPEC int mca_gpr_base_pack_triggers_inactive_cmd(ompi_buffer_t cmd, mca_ns_base_jobid_t jobid);
OMPI_DECLSPEC int mca_gpr_base_unpack_triggers_inactive_cmd(ompi_buffer_t cmd);
OMPI_DECLSPEC void mca_gpr_base_release_notify_msg(ompi_registry_notify_message_t *msg);
#if defined(c_plusplus) || defined(__cplusplus)
}

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

@ -0,0 +1,36 @@
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University.
* All rights reserved.
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
* All rights reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "mca/gpr/base/base.h"
void mca_gpr_base_release_notify_msg(ompi_registry_notify_message_t *msg)
{
ompi_registry_value_t *ptr;
if (NULL != msg->segment) {
free(msg->segment);
}
if (0 < ompi_list_get_size(&msg->data)) {
while (NULL != (ptr = (ompi_registry_value_t*)ompi_list_remove_first(&msg->data))) {
OBJ_RELEASE(ptr);
}
}
free(msg);
}

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

@ -360,7 +360,7 @@ void mca_gpr_proxy_notify_recv(int status, ompi_process_name_t* sender,
/* dismantle message and free memory */
RETURN_ERROR:
free(message);
mca_gpr_base_release_notify_msg(message);
/* reissue non-blocking receive */
mca_oob_recv_packed_nb(MCA_OOB_NAME_ANY, MCA_OOB_TAG_GPR_NOTIFY, 0, mca_gpr_proxy_notify_recv, NULL);

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

@ -52,5 +52,5 @@ void mca_gpr_proxy_deliver_notify_msg(ompi_registry_notify_action_t state,
OMPI_THREAD_UNLOCK(&mca_gpr_proxy_mutex);
}
}
OBJ_RELEASE(message);
mca_gpr_base_release_notify_msg(message);
}

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

@ -55,6 +55,6 @@ void mca_gpr_replica_deliver_notify_msg(ompi_registry_notify_action_t state,
OMPI_THREAD_UNLOCK(&mca_gpr_replica_mutex);
}
}
OBJ_RELEASE(message);
mca_gpr_base_release_notify_msg(message);
}

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

@ -115,7 +115,6 @@ int mca_gpr_replica_subscribe_nl(ompi_registry_mode_t addr_mode,
0, id_tag))) {
if ((OMPI_REGISTRY_NOTIFY_PRE_EXISTING & action) && seg->triggers_active) { /* want list of everything there */
ompi_output(0, "Notify pre-existing fired\n");
notify_msg = mca_gpr_replica_construct_notify_message(seg, trig);
notify_msg->trig_action = action;
notify_msg->trig_synchro = OMPI_REGISTRY_SYNCHRO_MODE_NONE;

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

@ -318,6 +318,6 @@ void mca_gpr_replica_remote_notify(ompi_process_name_t *recipient, int recipient
}
ompi_buffer_free(msg);
/* FIX */
free(message);
mca_gpr_base_release_notify_msg(message);
}

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

@ -65,7 +65,6 @@ int mca_oob_xcast(
}
if(cbfunc != NULL)
cbfunc(rc, root, rbuf, tag, NULL);
ompi_buffer_free(rbuf);
}
return OMPI_SUCCESS;
}