From 34e9716fb28c4128d7cfee24a910a47abeb2aa98 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 21 May 2018 16:31:32 +0300 Subject: events: Add a cleanup function Add events to the watch list allocates memory. Add a cleanup function to free all memory at cleanup time without having to remove all events explicitly one by one. Signed-off-by: Laurent Pinchart --- events.c | 11 +++++++++++ events.h | 1 + 2 files changed, 12 insertions(+) diff --git a/events.c b/events.c index dba054a..90d81c3 100644 --- a/events.c +++ b/events.c @@ -181,3 +181,14 @@ void events_init(struct events *events) events->maxfd = 0; list_init(&events->events); } + +void events_cleanup(struct events *events) +{ + while (!list_empty(&events->events)) { + struct event_fd *event; + + event = list_first_entry(&events->events, typeof(*event), list); + list_remove(&event->list); + free(event); + } +} diff --git a/events.h b/events.h index ef8dccc..b0b8fa8 100644 --- a/events.h +++ b/events.h @@ -44,5 +44,6 @@ bool events_loop(struct events *events); void events_stop(struct events *events); void events_init(struct events *events); +void events_cleanup(struct events *events); #endif -- cgit v1.2.3