From f699adb114f6c15a938edceaaf37063537f2ddfe Mon Sep 17 00:00:00 2001 From: Emil Mikulic Date: Mon, 25 Mar 2013 04:44:37 +1100 Subject: [PATCH] Free memory, check queues are empty on exit. --- buftee.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/buftee.c b/buftee.c index 8623515..ae74b08 100644 --- a/buftee.c +++ b/buftee.c @@ -338,7 +338,9 @@ static void* writer_routine(void *arg) { unref_buf(buf); buf = NULL; } - nblogx("thread exiting cleanly"); + if (arg != logger) { + nblogx("thread exiting cleanly"); + } return NULL; } @@ -509,7 +511,9 @@ int main(int argc, char **argv) { while (!STAILQ_EMPTY(&writers)) { struct writer_thread* writer = STAILQ_FIRST(&writers); STAILQ_REMOVE_HEAD(&writers, entries); - // FIXME: free its queue? + if (!STAILQ_EMPTY(&writer->queue)) { + nblogx("queue for fd %d is not empty", writer->fd); + } free(writer); } @@ -520,6 +524,10 @@ int main(int argc, char **argv) { xpthread_cond_broadcast(logger->cond); unlock(logger->mutex); xpthread_join(logger->thread); + pthread_mutex_destroy(logger->mutex); + free(logger->mutex); + pthread_cond_destroy(logger->cond); + free(logger->cond); free(logger); warnx("exiting cleanly"); -- 2.17.1