From 8ba49be8564aca874f6b9dc537ff360ac6ea4757 Mon Sep 17 00:00:00 2001 From: Frederic Culot Date: Thu, 13 Aug 2009 17:30:42 +0000 Subject: Possible deadlock fixed, thanks Henrik for reporting it. --- ChangeLog | 5 +++++ src/notify.c | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 211a8be..b717d37 100755 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-08-13 Frederic Culot + + * src/notify.c (notify_thread_app): possible deadlock fixed + (thanks Henrik for reporting it) + 2009-08-09 Frederic Culot * src/notify.c (notify_thread_app): rewritten diff --git a/src/notify.c b/src/notify.c index 1d4eb51..cf57ef3 100755 --- a/src/notify.c +++ b/src/notify.c @@ -1,4 +1,4 @@ -/* $calcurse: notify.c,v 1.45 2009/08/09 15:34:56 culot Exp $ */ +/* $calcurse: notify.c,v 1.46 2009/08/13 17:30:42 culot Exp $ */ /* * Calcurse - text-based organizer @@ -429,17 +429,21 @@ notify_thread_app (void *arg) if (!notify_get_next (&tmp_app)) pthread_exit ((void *)0); - pthread_mutex_lock (¬ify_app.mutex); if (!tmp_app.got_app) { + pthread_mutex_lock (¬ify_app.mutex); notify_free_app (); + pthread_mutex_unlock (¬ify_app.mutex); } else { if (!notify_same_item (tmp_app.time)) - notify_update_app (tmp_app.time, tmp_app.state, tmp_app.txt); + { + pthread_mutex_lock (¬ify_app.mutex); + notify_update_app (tmp_app.time, tmp_app.state, tmp_app.txt); + pthread_mutex_unlock (¬ify_app.mutex); + } } - pthread_mutex_unlock (¬ify_app.mutex); if (tmp_app.txt) mem_free (tmp_app.txt); -- cgit v1.2.3-70-g09d2