diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index ef2f19e..62f3fbe 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -2680,6 +2680,7 @@ static void my_handle_dchan_exception(struct sig_pri_span *pri, int index) pri_event_noalarm(pri, index, 0); break; case DAHDI_EVENT_REMOVED: + ast_mutex_unlock(&pri->lock); pri_destroy_span(pri); break; default: @@ -14161,6 +14162,7 @@ static void pri_destroy_span(struct sig_pri_span *pri) dahdi_destroy_channel_range(channel, channel); } + ast_mutex_lock(&pri->lock); cancel_code = pthread_cancel(master); pthread_kill(master, SIGURG); ast_debug(4,