Merge "app_queue: Only remove queue member from pending when state changes." into 11

This commit is contained in:
zuul
2016-07-15 12:26:54 -05:00
committed by Gerrit Code Review
+10 -3
View File
@@ -1719,10 +1719,17 @@ struct statechange {
*/
static int update_status(struct call_queue *q, struct member *m, const int status)
{
m->status = status;
if (m->status != status) {
m->status = status;
/* Whatever the status is clear the member from the pending members pool */
pending_members_remove(m);
/* Remove the member from the pending members pool only when the status changes.
* This is not done unconditionally because we can occasionally see multiple
* device state notifications of not in use after a previous call has ended,
* including after we have initiated a new call. This is more likely to
* happen when there is latency in the connection to the member.
*/
pending_members_remove(m);
}
if (q->maskmemberstatus) {
return 0;