From e8230f2726b2efc5eb416d017c4e124e2e45e60d Mon Sep 17 00:00:00 2001 From: Cedric Roux <cedric.roux@eurecom.fr> Date: Wed, 6 Nov 2013 16:10:19 +0000 Subject: [PATCH] - Bugfix for epoll_wait and interrupted system call when using gdb - Fix memory leaks for itti_analyzer git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4333 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- common/utils/itti/intertask_interface.c | 12 +++++++----- common/utils/itti_analyzer/libresolver/resolvers.c | 8 +++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/common/utils/itti/intertask_interface.c b/common/utils/itti/intertask_interface.c index 7aa62a935b..5aec9cc2ec 100644 --- a/common/utils/itti/intertask_interface.c +++ b/common/utils/itti/intertask_interface.c @@ -402,14 +402,16 @@ static inline void itti_receive_msg_internal_event_fd(task_id_t task_id, uint8_t epoll_timeout = -1; } - epoll_ret = epoll_wait(itti_desc.tasks[thread_id].epoll_fd, - itti_desc.tasks[thread_id].events, - itti_desc.tasks[thread_id].nb_events, - epoll_timeout); + do { + epoll_ret = epoll_wait(itti_desc.tasks[thread_id].epoll_fd, + itti_desc.tasks[thread_id].events, + itti_desc.tasks[thread_id].nb_events, + epoll_timeout); + } while (epoll_ret < 0 && errno == EINTR); if (epoll_ret < 0) { ITTI_ERROR("epoll_wait failed for task %s: %s\n", - itti_get_task_name(task_id), strerror(errno)); + itti_get_task_name(task_id), strerror(errno)); DevAssert(0 == 1); } if (epoll_ret == 0 && polling) { diff --git a/common/utils/itti_analyzer/libresolver/resolvers.c b/common/utils/itti_analyzer/libresolver/resolvers.c index 2fc2392ae0..a0e0104deb 100644 --- a/common/utils/itti_analyzer/libresolver/resolvers.c +++ b/common/utils/itti_analyzer/libresolver/resolvers.c @@ -101,7 +101,7 @@ int resolve_struct(types_t **head) if (next_type->type != TYPE_STRUCT) continue; -// printf("Trying to resolve struct members %s with type %d\n", next_type->name, next_type->id); +// g_debug("Trying to resolve struct members %s with type %d", next_type->name, next_type->id); /* Struct may have no member */ if (next_type->members == NULL) @@ -135,7 +135,8 @@ int resolve_struct(types_t **head) /* Pick up the next string available */ member = strtok(NULL, " _"); } -// next_type->type_hr_display(next_type, 0); + + free(members); } return 0; @@ -185,7 +186,8 @@ int resolve_union(types_t **head) /* Pick up the next string available */ member = strtok(NULL, " _"); } -// next_type->type_hr_display(next_type, 0); + + free(members); } return 0; -- GitLab