add priority queue for events so important broadcasts like hold music can take precedenced over event-lock

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15865 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale
2009-12-10 01:29:02 +00:00
parent ca7d414eb8
commit 6fde2f3961
9 changed files with 66 additions and 24 deletions
+1
View File
@@ -134,6 +134,7 @@ struct switch_core_session {
switch_queue_t *event_queue;
switch_queue_t *message_queue;
switch_queue_t *private_event_queue;
switch_queue_t *private_event_queue_pri;
switch_thread_rwlock_t *bug_rwlock;
switch_media_bug_t *bugs;
switch_app_log_t *app_log;
+2 -1
View File
@@ -986,9 +986,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_dequeue_event(_In_ switch_co
\brief Queue a private event on a given session
\param session the session to queue the message on
\param event the event to queue
\param priority event has high priority
\return the status returned by the message handler
*/
SWITCH_DECLARE(switch_status_t) switch_core_session_queue_private_event(_In_ switch_core_session_t *session, _Inout_ switch_event_t **event);
SWITCH_DECLARE(switch_status_t) switch_core_session_queue_private_event(_In_ switch_core_session_t *session, _Inout_ switch_event_t **event, switch_bool_t priority);
/*!
+3 -1
View File
@@ -326,7 +326,8 @@ typedef enum {
SMF_LOOP = (1 << 4),
SMF_HOLD_BLEG = (1 << 5),
SMF_IMMEDIATE = (1 << 6),
SMF_EXEC_INLINE = (1 << 7)
SMF_EXEC_INLINE = (1 << 7),
SMF_PRIORITY = (1 << 8)
} switch_media_flag_enum_t;
typedef uint32_t switch_media_flag_t;
@@ -919,6 +920,7 @@ typedef enum {
CF_UNICAST,
CF_VIDEO,
CF_EVENT_LOCK,
CF_EVENT_LOCK_PRI,
CF_RESET,
CF_ORIGINATING,
CF_STOP_BROADCAST,