diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/notify.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/notify.c b/src/notify.c index 532bd01..0b02ebd 100644 --- a/src/notify.c +++ b/src/notify.c @@ -321,6 +321,15 @@ void notify_update_bar(void) pthread_mutex_unlock(¬ify.mutex); } +static void +notify_main_thread_cleanup(void *arg) +{ + pthread_mutex_trylock(¬ify.mutex); + pthread_mutex_unlock(¬ify.mutex); + pthread_mutex_trylock(&nbar.mutex); + pthread_mutex_unlock(&nbar.mutex); +} + /* Update the notication bar content */ /* ARGSUSED0 */ static void *notify_main_thread(void *arg) @@ -334,6 +343,8 @@ static void *notify_main_thread(void *arg) elapse = 0; + pthread_cleanup_push(notify_main_thread_cleanup, NULL); + for (;;) { ntimer = time(NULL); localtime_r(&ntimer, &ntime); @@ -357,6 +368,8 @@ static void *notify_main_thread(void *arg) notify_check_next_app(0); } } + + pthread_cleanup_pop(0); pthread_exit(NULL); } |