pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/29734 )
Change subject: mgcp-client: Avoid double iteration picking client from pool ......................................................................
mgcp-client: Avoid double iteration picking client from pool
Change-Id: I99e8be878452c5d8e2183239fbdd499dcf507e90 --- M src/libosmo-mgcp-client/mgcp_client_pool.c 1 file changed, 4 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/34/29734/1
diff --git a/src/libosmo-mgcp-client/mgcp_client_pool.c b/src/libosmo-mgcp-client/mgcp_client_pool.c index 0531953..f3ed392 100644 --- a/src/libosmo-mgcp-client/mgcp_client_pool.c +++ b/src/libosmo-mgcp-client/mgcp_client_pool.c @@ -124,17 +124,18 @@ { struct mgcp_client_pool_member *pool_member; struct mgcp_client_pool_member *pool_member_picked = NULL; - unsigned int n_pool_members = llist_count(&pool->pool); + unsigned int n_pool_members = 0;
llist_for_each_entry(pool_member, &pool->pool, list) { + n_pool_members++; if (pool_member->blocked == false && pool_member->client) { if (!pool_member_picked) pool_member_picked = pool_member; else if (pool_member_picked->refcount > pool_member->refcount) pool_member_picked = pool_member; } else { - LOGPPMGW(pool_member, LOGL_DEBUG, "MGW pool has %u members -- MGW %u is unusable\n", n_pool_members, - pool_member->nr); + LOGPPMGW(pool_member, LOGL_DEBUG, "%s -- MGW %u is unusable (blocked=%u, cli=%u)\n", + __func__, pool_member->nr, pool_member->blocked, !!pool_member->client); } }