提交 8b0421ff authored 作者: Anthony Minessale's avatar Anthony Minessale

add new function to check when messages need parsing to improve performance on…

add new function to check when messages need parsing to improve performance on parsing messages during originate
上级 7630d47e
......@@ -1024,6 +1024,11 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_queue_event(_In_ switch_core
*/
SWITCH_DECLARE(uint32_t) switch_core_session_event_count(_In_ switch_core_session_t *session);
/*
Number of parsable messages waiting on the session.
*/
SWITCH_DECLARE(uint32_t) switch_core_session_messages_waiting(switch_core_session_t *session);
/*!
\brief DE-Queue an event on a given session
\param session the session to de-queue the message on
......
......@@ -861,6 +861,21 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_queue_event(switch_core_sess
return status;
}
SWITCH_DECLARE(uint32_t) switch_core_session_messages_waiting(switch_core_session_t *session)
{
int x = 0;
if (session->private_event_queue) {
x += switch_queue_size(session->private_event_queue);
}
if (session->message_queue) {
x += switch_queue_size(session->message_queue);
}
return x;
}
SWITCH_DECLARE(uint32_t) switch_core_session_event_count(switch_core_session_t *session)
{
if (session->event_queue) {
......
......@@ -638,10 +638,12 @@ static uint8_t check_channel_status(originate_global_t *oglobals, originate_stat
if (!switch_channel_test_flag(originate_status[i].peer_channel, CF_PARK) &&
!switch_channel_test_flag(originate_status[i].peer_channel, CF_CONSUME_ON_ORIGINATE)) {
if (switch_channel_test_flag(originate_status[i].peer_channel, CF_THREAD_SLEEPING)) {
switch_core_session_wake_session_thread(originate_status[i].peer_session);
} else {
switch_ivr_parse_all_events(originate_status[i].peer_session);
if (switch_core_session_messages_waiting(originate_status[i].peer_session)) {
if (switch_channel_test_flag(originate_status[i].peer_channel, CF_THREAD_SLEEPING)) {
switch_core_session_wake_session_thread(originate_status[i].peer_session);
} else {
switch_ivr_parse_all_events(originate_status[i].peer_session);
}
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论