From a13654fa105fd44faffb7f7a738c927181b8b674 Mon Sep 17 00:00:00 2001 From: seife Date: Sun, 3 Jan 2010 14:52:06 +0000 Subject: [PATCH] sectionsd: we need to lock the mutex for pthread_cond_broadcast() git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@140 e54a6e83-5905-42d5-8d5c-058d10e6a962 --- src/sectionsd/sectionsd.cpp | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/sectionsd/sectionsd.cpp b/src/sectionsd/sectionsd.cpp index c234ff063..324910bd1 100644 --- a/src/sectionsd/sectionsd.cpp +++ b/src/sectionsd/sectionsd.cpp @@ -8642,14 +8642,26 @@ void sectionsd_main_thread(void */*data*/) scanning = 0; timeset = true; printf("broadcasting...\n"); - pthread_cond_broadcast(&timeIsSetCond); - pthread_cond_broadcast(&timeThreadSleepCond); - pthread_cond_broadcast(&dmxEIT.change_cond); - pthread_cond_broadcast(&dmxCN.change_cond); + pthread_mutex_lock(&timeIsSetMutex); + pthread_cond_broadcast(&timeIsSetCond); + pthread_mutex_unlock(&timeIsSetMutex); + pthread_mutex_lock(&timeThreadSleepMutex); + pthread_cond_broadcast(&timeThreadSleepCond); + pthread_mutex_unlock(&timeThreadSleepMutex); + pthread_mutex_lock(&dmxEIT.start_stop_mutex); + pthread_cond_broadcast(&dmxEIT.change_cond); + pthread_mutex_unlock(&dmxEIT.start_stop_mutex); + pthread_mutex_lock(&dmxCN.start_stop_mutex); + pthread_cond_broadcast(&dmxCN.change_cond); + pthread_mutex_unlock(&dmxCN.start_stop_mutex); #ifdef ENABLE_PPT - pthread_cond_broadcast(&dmxPPT.change_cond); + pthread_mutex_lock(&dmxPPT.start_stop_mutex); + pthread_cond_broadcast(&dmxPPT.change_cond); + pthread_mutex_unlock(&dmxPPT.start_stop_mutex); #endif - pthread_cond_broadcast(&dmxSDT.change_cond); + pthread_mutex_lock(&dmxSDT.start_stop_mutex); + pthread_cond_broadcast(&dmxSDT.change_cond); + pthread_mutex_unlock(&dmxSDT.start_stop_mutex); printf("pausing...\n"); dmxEIT.request_pause();