Count free servers in pgbouncer style (#121)

This commit is contained in:
kirill reshke 2020-02-18 14:46:13 +05:00 committed by GitHub
parent e68ae929cd
commit c0848c6e42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 3 deletions

View File

@ -806,8 +806,9 @@ od_console_show_lists_cb(od_route_t *route, void **argv)
od_route_lock(route);
int *used_servers = argv[0];
int *free_servers = argv[1];
(*used_servers) += route->server_pool.count_active;
(*used_servers) += route->server_pool.count_idle;
(*free_servers) += route->server_pool.count_idle;
od_route_unlock(route);
return 0;
@ -826,10 +827,11 @@ od_console_show_lists(od_client_t *client, machine_msg_t *stream)
od_router_lock(router);
int router_used_servers = 0;
int router_free_servers = 0;
int router_pools = router->route_pool.count;
int router_clients = od_atomic_u32_of(&router->clients);
void *argv[] = { &router_used_servers };
void *argv[] = { &router_used_servers, &router_free_servers };
od_route_pool_foreach(&router->route_pool, od_console_show_lists_cb, argv);
od_router_unlock(router);
@ -864,7 +866,7 @@ od_console_show_lists(od_client_t *client, machine_msg_t *stream)
if (rc == -1)
return -1;
/* free_servers */
rc = od_console_show_lists_add(stream, "free_servers", 0);
rc = od_console_show_lists_add(stream, "free_servers", router_free_servers);
if (rc == -1)
return -1;
/* used_servers */