git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@170
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
+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) {
gras_error_t
gras_cb_register(gras_msgtype_t *msgtype,
gras_cb_t cb) {
#define GRAS_PROTOCOL_VERSION '\0';
typedef struct s_gras_cblist gras_cblist_t;
#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 */
#endif /* GRAS_MSG_INTERFACE_H */
gras_error_t errcode;
gras_procdata_t *pd=gras_procdata_get();
pd->userdata = NULL;
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));