From 3aefd00f6aebad7c50210e68650cb8c42e0835cd Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Tue, 4 Oct 2011 12:13:13 +0200 Subject: Cleanup joinable threads on termination Always invoke pthread_join() when we blow up a thread via pthread_cancel() (avoid zombie threads). Signed-off-by: Lukas Fleischer --- src/calendar.c | 5 ++++- src/io.c | 5 ++++- src/notify.c | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/calendar.c b/src/calendar.c index 6664a93..e303ab9 100644 --- a/src/calendar.c +++ b/src/calendar.c @@ -145,7 +145,10 @@ void calendar_stop_date_thread (void) { if (calendar_t_date) - pthread_cancel (calendar_t_date); + { + pthread_cancel (calendar_t_date); + pthread_join (calendar_t_date, NULL); + } } /* Set static variable today to current date */ diff --git a/src/io.c b/src/io.c index b64dd58..22f8719 100644 --- a/src/io.c +++ b/src/io.c @@ -2927,7 +2927,10 @@ void io_stop_psave_thread (void) { if (io_t_psave) - pthread_cancel (io_t_psave); + { + pthread_cancel (io_t_psave); + pthread_join (io_t_psave, NULL); + } } /* diff --git a/src/notify.c b/src/notify.c index 1b7e924..188d92c 100644 --- a/src/notify.c +++ b/src/notify.c @@ -188,7 +188,10 @@ void notify_stop_main_thread (void) { if (notify_t_main) - pthread_cancel (notify_t_main); + { + pthread_cancel (notify_t_main); + pthread_join (notify_t_main, NULL); + } } /* -- cgit v1.2.3-70-g09d2