[asterisk-commits] mmichelson: trunk r81341 - in /trunk: ./ apps/app_queue.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Aug 29 10:57:27 CDT 2007
Author: mmichelson
Date: Wed Aug 29 10:57:27 2007
New Revision: 81341
URL: http://svn.digium.com/view/asterisk?view=rev&rev=81341
Log:
Merged revisions 81340 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r81340 | mmichelson | 2007-08-29 10:52:42 -0500 (Wed, 29 Aug 2007) | 8 lines
This fix creates a more accurate way of detecting whether realtime members were deleted.
(closes issue 10541, reported by Alric, patched by me)
The REALLY nice things about this patch is that queue members now have a "realtime" field
which will be true if the member is a realtime member. This means we can check this value
prior to certain processing if it should ONLY be done for realtime members.
........
Modified:
trunk/ (props changed)
trunk/apps/app_queue.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.
Modified: trunk/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_queue.c?view=diff&rev=81341&r1=81340&r2=81341
==============================================================================
--- trunk/apps/app_queue.c (original)
+++ trunk/apps/app_queue.c Wed Aug 29 10:57:27 2007
@@ -318,6 +318,7 @@
int penalty; /*!< Are we a last resort? */
int calls; /*!< Number of calls serviced by this member */
int dynamic; /*!< Are we dynamically added? */
+ int realtime; /*!< Is this member realtime? */
int status; /*!< Status of queue member */
int paused; /*!< Are we paused (not accepting calls)? */
time_t lastcall; /*!< When last successful call was hungup */
@@ -1049,6 +1050,7 @@
if (!m) {
if ((m = create_queue_member(interface, membername, penalty, paused))) {
m->dead = 0;
+ m->realtime = 1;
add_to_interfaces(interface);
if (prev_m) {
prev_m->next = m;
@@ -1173,10 +1175,10 @@
queue_set_param(q, tmp_name, v->value, -1, 0);
}
- /* Temporarily set non-dynamic members dead so we can detect deleted ones.
+ /* Temporarily set realtime members dead so we can detect deleted ones.
* Also set the membercount correctly for realtime*/
for (m = q->members; m; m = m->next, q->membercount++) {
- if (!m->dynamic)
+ if (m->realtime)
m->dead = 1;
}
@@ -1278,9 +1280,9 @@
ast_mutex_lock(&q->lock);
- /* Temporarily set non-dynamic members dead so we can detect deleted ones.*/
+ /* Temporarily set realtime members dead so we can detect deleted ones.*/
for (m = q->members; m; m = m->next) {
- if (!m->dynamic)
+ if (m->realtime)
m->dead = 1;
}
@@ -4188,8 +4190,9 @@
ast_str_set(&out, 0, " %s", mem->interface);
if (mem->penalty)
ast_str_append(&out, 0, " with penalty %d", mem->penalty);
- ast_str_append(&out, 0, "%s%s (%s)",
+ ast_str_append(&out, 0, "%s%s%s (%s)",
mem->dynamic ? " (dynamic)" : "",
+ mem->realtime ? " (realtime)" : "",
mem->paused ? " (paused)" : "",
devstate2str(mem->status));
if (mem->calls)
More information about the asterisk-commits
mailing list