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.
Этот коммит содержится в:
родитель
73a9e95816
Коммит
2ee47e0708
@ -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)
|
||||
}
|
||||
|
36
src/mca/gpr/base/gpr_base_release_notify_msg.c
Обычный файл
36
src/mca/gpr/base/gpr_base_release_notify_msg.c
Обычный файл
@ -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;
|
||||
}
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user