diff --git a/recording-daemon/main.c b/recording-daemon/main.c index 9139b2d29..720d09e85 100644 --- a/recording-daemon/main.c +++ b/recording-daemon/main.c @@ -166,9 +166,9 @@ static void wait_for_signal(void) { static void cleanup(void) { - notify_cleanup(); garbage_collect_all(); metafile_cleanup(); + notify_cleanup(); inotify_cleanup(); epoll_cleanup(); mysql_library_end(); diff --git a/recording-daemon/notify.c b/recording-daemon/notify.c index bcf67e485..bf824877a 100644 --- a/recording-daemon/notify.c +++ b/recording-daemon/notify.c @@ -301,8 +301,6 @@ void notify_setup(void) { } void notify_cleanup(void) { - if (notify_threadpool) - g_thread_pool_free(notify_threadpool, true, false); if (notify_waiter && notify_timers) { // get lock, free GTree, signal thread to shut down pthread_mutex_lock(&timer_lock); @@ -311,6 +309,9 @@ void notify_cleanup(void) { pthread_cond_signal(&timer_cond); pthread_mutex_unlock(&timer_lock); } + if (notify_threadpool) + g_thread_pool_free(notify_threadpool, true, false); + notify_threadpool = NULL; } __attribute__ ((format (printf, 2, 3)))