summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/notify.c13
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(&notify.mutex);
}
+static void
+notify_main_thread_cleanup(void *arg)
+{
+ pthread_mutex_trylock(&notify.mutex);
+ pthread_mutex_unlock(&notify.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);
}