[Freeswitch-trunk] [commit] r12844 - freeswitch/trunk/src
FreeSWITCH SVN
anthm at freeswitch.org
Mon Mar 30 14:10:01 PDT 2009
Author: anthm
Date: Mon Mar 30 16:09:49 2009
New Revision: 12844
Log:
add warnings
Modified:
freeswitch/trunk/src/switch_event.c
Modified: freeswitch/trunk/src/switch_event.c
==============================================================================
--- freeswitch/trunk/src/switch_event.c (original)
+++ freeswitch/trunk/src/switch_event.c Mon Mar 30 16:09:49 2009
@@ -1100,7 +1100,8 @@
SWITCH_DECLARE(switch_status_t) switch_event_fire_detailed(const char *file, const char *func, int line, switch_event_t **event, void *user_data)
{
-
+ int index;
+
switch_assert(BLOCK != NULL);
switch_assert(RUNTIME_POOL != NULL);
switch_assert(EVENT_QUEUE_MUTEX != NULL);
@@ -1116,8 +1117,22 @@
(*event)->event_user_data = user_data;
}
+ for (;;) {
+ for (index = (*event)->priority; index < 3; index++) {
+ if (switch_queue_trypush(EVENT_QUEUE[index], *event) == SWITCH_STATUS_SUCCESS) {
+ if (index != (*event)->priority) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "queued event at a lower priority!\n");
+ }
+ goto end;
+ }
+ }
+
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Event queue is full!\n");
+ switch_yield(100000);
+ }
+
+ end:
- switch_queue_push(EVENT_QUEUE[(*event)->priority], *event);
*event = NULL;
return SWITCH_STATUS_SUCCESS;
More information about the Freeswitch-trunk
mailing list