From 76b2d8c9cdf908d428fef3d55c3185876978d97b Mon Sep 17 00:00:00 2001 From: mquinson Date: Mon, 5 Jul 2004 23:34:03 +0000 Subject: [PATCH 1/1] free the callback list on gras_process_exit git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@170 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/gras/Msg/msg.c | 9 +++++++++ src/gras/Msg/msg_interface.h | 2 +- src/gras/Virtu/process.c | 6 +++--- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/gras/Msg/msg.c b/src/gras/Msg/msg.c index 7390f13828..706c52ef70 100644 --- a/src/gras/Msg/msg.c +++ b/src/gras/Msg/msg.c @@ -400,6 +400,15 @@ gras_msg_handle(double timeOut) { return mismatch_error; } +void +gras_cbl_free(void *data){ + gras_cblist_t *list=*(void**)data; + if (list) { + gras_dynar_free(list->cbs); + free(list); + } +} + gras_error_t gras_cb_register(gras_msgtype_t *msgtype, gras_cb_t cb) { diff --git a/src/gras/Msg/msg_interface.h b/src/gras/Msg/msg_interface.h index 4faceadd8b..390a345bb1 100644 --- a/src/gras/Msg/msg_interface.h +++ b/src/gras/Msg/msg_interface.h @@ -32,5 +32,5 @@ gras_error_t gras_msg_send_namev(gras_socket_t *sock, #define GRAS_PROTOCOL_VERSION '\0'; typedef struct s_gras_cblist gras_cblist_t; - +void gras_cbl_free(void *); /* virtu use that to free the memory at the end */ #endif /* GRAS_MSG_INTERFACE_H */ diff --git a/src/gras/Virtu/process.c b/src/gras/Virtu/process.c index 50676f8966..ef02c5de22 100644 --- a/src/gras/Virtu/process.c +++ b/src/gras/Virtu/process.c @@ -33,9 +33,9 @@ gras_procdata_init() { gras_error_t errcode; gras_procdata_t *pd=gras_procdata_get(); pd->userdata = NULL; - TRY(gras_dynar_new( &(pd->msg_queue), sizeof(gras_msg_t), NULL )); - TRY(gras_dynar_new( &(pd->cbl_list), sizeof(gras_cblist_t *), NULL )); - TRY(gras_dynar_new( &(pd->sockets), sizeof(gras_socket_t*), NULL)); + TRY(gras_dynar_new(&(pd->msg_queue), sizeof(gras_msg_t), NULL)); + TRY(gras_dynar_new(&(pd->cbl_list), sizeof(gras_cblist_t *),gras_cbl_free)); + TRY(gras_dynar_new(&(pd->sockets), sizeof(gras_socket_t*), NULL)); return no_error; } -- 2.20.1