From 751886830e44e63850c118f0871b43ab1ffeb1d8 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Wed, 30 Oct 2013 11:53:45 +0100 Subject: [PATCH] Fix another memory leak in chord example. --- examples/msg/chord/chord.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/examples/msg/chord/chord.c b/examples/msg/chord/chord.c index a21857b26d..2493447edc 100644 --- a/examples/msg/chord/chord.c +++ b/examples/msg/chord/chord.c @@ -407,6 +407,9 @@ int node(int argc, char *argv[]) } if (node.comm_receive) { + /* handle last task if any */ + if (MSG_comm_wait(node.comm_receive, 0) == MSG_OK) + task_free(task_received); MSG_comm_destroy(node.comm_receive); node.comm_receive = NULL; } @@ -514,6 +517,8 @@ static void handle_task(node_t node, msg_task_t task) { MSG_task_dsend(task, task_data->answer_to, task_free); break; + default: + THROW_IMPOSSIBLE; } } @@ -772,7 +777,6 @@ static int remote_get_predecessor(node_t node, int ask_to) stop = 1; MSG_comm_destroy(node->comm_receive); node->comm_receive = NULL; - task_free(task_sent); } else { msg_task_t task_received = MSG_comm_get_task(node->comm_receive); -- 2.20.1