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);
}
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);
+ }
}
}
}
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);