[asterisk-dev] [Code Review] app_queue change to have one devstate per device not per member / Janitorial cleanups

irroot reviewboard at asterisk.org
Wed Oct 26 08:18:47 CDT 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/1538/
-----------------------------------------------------------

(Updated Oct. 26, 2011, 8:18 a.m.)


Review request for Asterisk Developers and Matthew Nicholson.


Changes
-------

mnicholson reported performance regression this is likely due to the taskprocessor been removed its been added back.
im not sure the way im doing it is correct i should memcpy the state device to new block and pass this then free it latter
to make sure state is reported correctly.

the member config code has been grouped together in one function it does not take into account queues with no members as the old code did
this is IMHO correct persistent members are valid so a RT queue with no RT members is possible and should be allowed.
the logic preventing queues with no realtime members is inconsistent.

loading all realtime peers before persistent members will work better but i need to check them when loading the q/realtime members

this ill look into further and test.


Summary (updated)
-------

This is a rather large changeset but consists of the following

1)rework adding member records combine duplicate code
2)remove check_state_unknown its not needed any more now that we can reserve a state interface
3)split state information into a new container (devices) the member holds a ref to it allowing shared state devices see above
4)realtime and paused are y/n so add a :1 to them and align bitfields in struct

5)ao2 search callbacks can handle non OBJ_POINTER flag to make ao2_find useful no need to pass obj
6)Reservation of devices to pervent duplicate calls


This addresses bug AST-695.
    https://issues.asterisk.org/jira/browse/AST-695


Diffs (updated)
-----

  /trunk/apps/app_queue.c 342539 

Diff: https://reviewboard.asterisk.org/r/1538/diff


Testing (updated)
-------

as most of the above [1,2,4] are removing code not referenced or changing syntax going over the .diff over and over makeing sure it builds and loads.

check state information is propogated and used in app_queue [3,6] 
make sure queues are loaded correctly and changes in [5] have not broken things

backport of app_queue[trunk] to 1.8 [production] has been running 4k+ calls per day for 2 days on this patch.


Thanks,

irroot

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20111026/a51858d0/attachment-0001.htm>


More information about the asterisk-dev mailing list