From b97fd0333d1faf11675c2ec522979ee1ba81a524 Mon Sep 17 00:00:00 2001 From: iovar Date: Wed, 5 Dec 2007 17:50:09 +0000 Subject: moved pause cond signaling to rmd_timer thread (was in signal handler) git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@458 f606c939-3180-4ac9-a4b8-4b8779d57d0a --- recordmydesktop/src/register_callbacks.c | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) (limited to 'recordmydesktop/src/register_callbacks.c') diff --git a/recordmydesktop/src/register_callbacks.c b/recordmydesktop/src/register_callbacks.c index a0d2552..c5d22d1 100644 --- a/recordmydesktop/src/register_callbacks.c +++ b/recordmydesktop/src/register_callbacks.c @@ -28,25 +28,9 @@ #include void SetPaused(int signum){ - if(!Paused){ - Paused=1; - fprintf(stderr,"STATE:PAUSED\n"); - } - else{ - Paused=0; - fprintf(stderr,"STATE:RECORDING\n"); -/*FIXME */ -//This is not safe. -//cond_var signaling must move away from signal handlers -//alltogether (JackCapture, SetExpired, SetPaused). -//Better would be a set of pipes for each of these. -//The callback should write on the pipe and the main thread -//should perform a select over the fd's, signaling afterwards the -//appropriate cond_var. - pthread_mutex_lock(&pause_mutex); - pthread_cond_broadcast(pause_cond); - pthread_mutex_unlock(&pause_mutex); - } + + PauseStateChanged=1; + } @@ -60,7 +44,7 @@ void SetRunning(int signum){ void RegisterCallbacks(ProgArgs *args){ struct sigaction pause_act,end_act; - + pause_act.sa_handler=SetPaused; end_act.sa_handler=SetRunning; sigfillset(&(pause_act.sa_mask)); -- cgit v1.2.1