diff options
author | iovar <iovar@f606c939-3180-4ac9-a4b8-4b8779d57d0a> | 2007-01-29 21:15:32 +0000 |
---|---|---|
committer | iovar <iovar@f606c939-3180-4ac9-a4b8-4b8779d57d0a> | 2007-01-29 21:15:32 +0000 |
commit | 17979ae99228dd0422c26e366d6453663b9664a4 (patch) | |
tree | 589dc742d8fbfdbdd034517dbbccc0e290789047 /recordmydesktop/src/cache_audio.c | |
parent | 6ddb091a949d1c7ef107307aedf980bc34f6aa57 (diff) |
Fixed all condition variables, to be waited with correct mutexes.
This fixed also the wakeup from pause bug.
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@269 f606c939-3180-4ac9-a4b8-4b8779d57d0a
Diffstat (limited to 'recordmydesktop/src/cache_audio.c')
-rw-r--r-- | recordmydesktop/src/cache_audio.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/recordmydesktop/src/cache_audio.c b/recordmydesktop/src/cache_audio.c index 178bb7c..edcabb3 100644 --- a/recordmydesktop/src/cache_audio.c +++ b/recordmydesktop/src/cache_audio.c @@ -34,19 +34,20 @@ void *CacheSoundBuffer(ProgData *pdata){ int framesize=((snd_pcm_format_width(SND_PCM_FORMAT_S16_LE))/8)* pdata->args.channels; #endif - pthread_mutex_t smut; - pthread_mutex_init(&smut,NULL); while((pdata->running)){ SndBuffer *buff; if(Paused){ - pthread_mutex_t tmut; - pthread_mutex_init(&tmut,NULL); - pthread_cond_wait(&pdata->pause_cond,&tmut); + pthread_mutex_lock(&pause_mutex); + pthread_cond_wait(&pdata->pause_cond,&pause_mutex); + pthread_mutex_unlock(&pause_mutex); } if(pdata->sound_buffer==NULL){ pdata->v_enc_thread_waiting=1; - pthread_cond_wait(&pdata->sound_data_read,&smut); + pthread_mutex_lock(&pdata->snd_buff_ready_mutex); + pthread_cond_wait(&pdata->sound_data_read, + &pdata->snd_buff_ready_mutex); + pthread_mutex_unlock(&pdata->snd_buff_ready_mutex); pdata->v_enc_thread_waiting=0; } if(pdata->sound_buffer==NULL || !pdata->running) |