]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
mod_posix_timer -mutex fixes
authorChristopher Rienzo <chris@rienzo.net>
Sat, 17 Dec 2011 02:55:44 +0000 (02:55 +0000)
committerChristopher Rienzo <chris@rienzo.net>
Sat, 17 Dec 2011 02:55:44 +0000 (02:55 +0000)
src/mod/timers/mod_posix_timer/mod_posix_timer.c

index 80acfa58644d68037b428043cf669a0e98c1a2bd..97002a86c71220b367233652747129e9160b5bc6 100644 (file)
@@ -68,13 +68,13 @@ static void posix_timer_notify(sigval_t data)
        switch_mutex_unlock(it->mutex);
 
        if (globals.shutdown) {
-               switch_mutex_lock(it->mutex);
+               switch_mutex_lock(globals.interval_timers_mutex);
                if (it->users) {
                        timer_delete(it->timer);
                        memset(&it->timer, 0, sizeof(it->timer));
                        it->users = 0;
                }
-               switch_mutex_unlock(it->mutex);
+               switch_mutex_unlock(globals.interval_timers_mutex);
        }
 }
 
@@ -133,8 +133,10 @@ static switch_status_t posix_timer_stop_interval(interval_timer_t *it)
        if (it->users > 0) {
                it->users--;
                if (it->users == 0) {
+                       switch_mutex_lock(it->mutex);
                        timer_delete(it->timer);
                        memset(&it->timer, 0, sizeof(it->timer));
+                       switch_mutex_unlock(it->mutex);
                }
        }
        return SWITCH_STATUS_SUCCESS;