struct member *member;
struct ao2_iterator mem_iter;
enum queue_member_status result = QUEUE_NO_MEMBERS;
- int allpaused = 1;
+ int allpaused = 1, empty = 1;
ao2_lock(q);
mem_iter = ao2_iterator_init(q->members, 0);
while ((member = ao2_iterator_next(&mem_iter))) {
+ empty = 0;
+
if (max_penalty && (member->penalty > max_penalty)) {
ao2_ref(member, -1);
continue;
ao2_iterator_destroy(&mem_iter);
ao2_unlock(q);
- if (allpaused) {
- result = QUEUE_NO_REACHABLE_MEMBERS;
- }
+ if (!empty && allpaused) {
+ result = QUEUE_NO_REACHABLE_MEMBERS;
+ }
return result;
}