]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
update
authorAnthony Minessale <anthony.minessale@gmail.com>
Tue, 11 Nov 2008 19:45:28 +0000 (19:45 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Tue, 11 Nov 2008 19:45:28 +0000 (19:45 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@10336 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_time.c

index 9e4e0df0b8aef6179a045ee918e7182f9151a7c9..63b9e185e45a6ee4ce2987f953bc4df0d98f59d2 100644 (file)
@@ -202,11 +202,12 @@ SWITCH_DECLARE(void) switch_cond_yield(uint32_t ms)
                do_yield(ms * 1000);
        }
 
+       switch_mutex_lock(TIMER_MATRIX[1].mutex);
        while(globals.RUNNING == 1 && globals.use_cond_yield == 1 && ms--) {
-               switch_mutex_lock(TIMER_MATRIX[1].mutex);
                switch_thread_cond_wait(TIMER_MATRIX[1].cond, TIMER_MATRIX[1].mutex);
-               switch_mutex_unlock(TIMER_MATRIX[1].mutex);
        }
+       switch_mutex_unlock(TIMER_MATRIX[1].mutex);
+
 }
 
 static switch_status_t timer_init(switch_timer_t *timer)
@@ -302,12 +303,12 @@ static switch_status_t timer_next(switch_timer_t *timer)
        timer_step(timer);
 
 #if 1
+       switch_mutex_lock(TIMER_MATRIX[timer->interval].mutex);
        while (globals.RUNNING == 1 && private_info->ready && TIMER_MATRIX[timer->interval].tick < private_info->reference) {
                check_roll();
-               switch_mutex_lock(TIMER_MATRIX[timer->interval].mutex);
-               switch_thread_cond_wait(TIMER_MATRIX[timer->interval].cond, TIMER_MATRIX[timer->interval].mutex);
-               switch_mutex_unlock(TIMER_MATRIX[timer->interval].mutex);
+               switch_thread_cond_wait(TIMER_MATRIX[timer->interval].cond, TIMER_MATRIX[timer->interval].mutex);       
        }
+       switch_mutex_unlock(TIMER_MATRIX[timer->interval].mutex);
 #else
        while (globals.RUNNING == 1 && private_info->ready && TIMER_MATRIX[timer->interval].tick < private_info->reference) {
                check_roll();