]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-3604 --resolve
authorMarc Olivier Chouinard <mochouinard@moctel.com>
Fri, 16 Dec 2011 03:00:14 +0000 (22:00 -0500)
committerMarc Olivier Chouinard <mochouinard@moctel.com>
Fri, 16 Dec 2011 03:00:14 +0000 (22:00 -0500)
src/mod/endpoints/mod_rtmp/mod_rtmp.c

index e00fcd0b6f9e1e55d8c51c196f1c5e4a5bdae280..9d2039e37e18e94f0a8f2216ee47336507c57975 100644 (file)
@@ -266,10 +266,6 @@ switch_status_t rtmp_on_hangup(switch_core_session_t *session)
        rtmp_notify_call_state(session);
        rtmp_send_onhangup(session);
        
-       switch_mutex_lock(tech_pvt->rtmp_session->count_mutex);
-       tech_pvt->rtmp_session->active_sessions--;
-       switch_mutex_unlock(tech_pvt->rtmp_session->count_mutex);
-       
        switch_core_hash_delete_wrlock(tech_pvt->rtmp_session->session_hash, switch_core_session_get_uuid(session), tech_pvt->rtmp_session->session_rwlock);
        
        switch_mutex_lock(tech_pvt->rtmp_session->profile->mutex);
@@ -279,6 +275,10 @@ switch_status_t rtmp_on_hangup(switch_core_session_t *session)
        }
        switch_mutex_unlock(tech_pvt->rtmp_session->profile->mutex);
 
+        switch_mutex_lock(tech_pvt->rtmp_session->count_mutex);
+        tech_pvt->rtmp_session->active_sessions--;
+        switch_mutex_unlock(tech_pvt->rtmp_session->count_mutex);
+
 #ifndef RTMP_DONT_HOLD
        if (switch_channel_test_flag(channel, CF_HOLD)) {
                switch_channel_mark_hold(channel, SWITCH_FALSE);