From 7df4e52d618e1f5a6c70c304f5cbe445615a498e Mon Sep 17 00:00:00 2001 From: William King Date: Wed, 6 Mar 2013 12:13:10 -0800 Subject: [PATCH] added rsession check before comparing its state. commented out active sessions loop --- src/mod/endpoints/mod_rtmp/mod_rtmp.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/mod/endpoints/mod_rtmp/mod_rtmp.c b/src/mod/endpoints/mod_rtmp/mod_rtmp.c index bfe09a27f6..d43ba425de 100644 --- a/src/mod/endpoints/mod_rtmp/mod_rtmp.c +++ b/src/mod/endpoints/mod_rtmp/mod_rtmp.c @@ -228,7 +228,6 @@ switch_status_t rtmp_on_destroy(switch_core_session_t *session) tech_pvt = switch_core_session_get_private(session); if (tech_pvt) { - rtmp_session_t *rsession = tech_pvt->rtmp_session; if (switch_core_codec_ready(&tech_pvt->read_codec)) { switch_core_codec_destroy(&tech_pvt->read_codec); } @@ -240,8 +239,11 @@ switch_status_t rtmp_on_destroy(switch_core_session_t *session) switch_buffer_destroy(&tech_pvt->readbuf); switch_core_timer_destroy(&tech_pvt->timer); - if (rsession->state != RS_DESTROY) { - rtmp_session_destroy(&rsession); + if (tech_pvt->rtmp_session) { + rtmp_session_t *rsession = tech_pvt->rtmp_session; + if (rsession->state != RS_DESTROY) { + rtmp_session_destroy(&rsession); + } } } @@ -845,10 +847,10 @@ switch_status_t rtmp_session_destroy(rtmp_session_t **rsession) } switch_thread_rwlock_unlock((*rsession)->session_rwlock); - while ((*rsession)->active_sessions > 0) { + /* while ((*rsession)->active_sessions > 0) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Still have %d sessions, waiting\n", (*rsession)->active_sessions); switch_yield(500000); - } + }*/ switch_thread_rwlock_wrlock((*rsession)->rwlock); switch_thread_rwlock_unlock((*rsession)->rwlock);