[asterisk-dev] [Code Review]: Named call pickup groups. Fixes, missing functionality, and improvements.
rmudgett
reviewboard at asterisk.org
Fri Sep 14 17:39:00 CDT 2012
> On Sept. 14, 2012, 12:33 a.m., Alec Davis wrote:
> > /trunk/main/channel.c, line 8590
> > <https://reviewboard.asterisk.org/r/2112/diff/2/?file=31225#file31225line8590>
> >
> > why not
> > for ((it = ao2_iterator_init(grp, 0)); (ng = ao2_iterator_next(&it)); ao2_ref(ng, -1)) {
> >
> > In other words, the orignal was easier to read, and achieved the same.
> >
> > The a02_iterator_next is evaluated before the loop is executed.
> >
>
> rmudgett wrote:
> Using the for loop gets you thinking about what is going on.
> For all items in the container do...
>
> I initially put the iterator init there but put it before the for loop to shorten the line length.
> I moved it back to the for init section since it fits the line length guideline.
>
>
> Alec Davis wrote:
> if the line didn't fit, it 'could' be done like below, note: never seen it done this way before, but makes me wonder whether the brackets around the "ng =..." are required.
>
> for (
> it = ao2_iterator_init(grp, 0);
> (ng = ao2_iterator_next(&it));
> ao2_ref(ng, -1)) {
There are several examples in pbx.c.
The parentheses around the "ng =..." are necessary to avoid a compiler warning about assignments in test expressions.
I have broken long for loop lines that way before. I haven't been thrilled with the appearance but it is the best places to break the line.
- rmudgett
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/2112/#review7061
-----------------------------------------------------------
On Sept. 14, 2012, 11:13 a.m., rmudgett wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/2112/
> -----------------------------------------------------------
>
> (Updated Sept. 14, 2012, 11:13 a.m.)
>
>
> Review request for Asterisk Developers.
>
>
> Summary
> -------
>
> * ASTERISK-20383
> Missing named call pickup group features:
>
> CHANNEL(callgroup) - Need CHANNEL(namedcallgroup)
> CHANNEL(pickupgroup) - Need CHANNEL(namedpickupgroup)
> Pickup() - Needs to also select from named pickup groups.
>
> * ASTERISK-20384
> Using the pickupexten, the pickup channel selection could fail even though there was a call it could have picked up. In a call pickup race when there are multiple calls to pickup and two extensions try to pickup a call, it is conceivable that the loser will not pick up any call even though it could have picked up the next oldest matching call.
>
> Regression because of the named call pickup group feature.
>
> * See ASTERISK-20386 for the improvements.
>
> * Fixed some locking issues in CHANNEL().
>
>
> This addresses bugs ASTERISK-20383, ASTERISK-20384 and ASTERISK-20386.
> https://issues.asterisk.org/jira/browse/ASTERISK-20383
> https://issues.asterisk.org/jira/browse/ASTERISK-20384
> https://issues.asterisk.org/jira/browse/ASTERISK-20386
>
>
> Diffs
> -----
>
> /trunk/apps/app_directed_pickup.c 373056
> /trunk/funcs/func_channel.c 373056
> /trunk/include/asterisk/channel.h 373056
> /trunk/include/asterisk/features.h 373056
> /trunk/main/channel.c 373056
> /trunk/main/features.c 373056
>
> Diff: https://reviewboard.asterisk.org/r/2112/diff
>
>
> Testing
> -------
>
> Tested call pickupexten, Pickup(), CHANNEL(namedcallgroup), and CHANNEL(namedpickupgroup) for named call group functionality.
>
>
> Thanks,
>
> rmudgett
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20120914/4662ab89/attachment-0001.htm>
More information about the asterisk-dev
mailing list