From 8df663aa3201961d8cb30b9e2092c55857cebbeb Mon Sep 17 00:00:00 2001 From: Pavel Uhanov <pavel.uhanov@demlabs.net> Date: Fri, 14 Mar 2025 07:21:34 +0300 Subject: [PATCH] [+] add dap_cli_get_cmd_thread_count --- net/server/cli_server/dap_cli_server.c | 8 ++++++++ net/server/cli_server/include/dap_cli_server.h | 1 + 2 files changed, 9 insertions(+) diff --git a/net/server/cli_server/dap_cli_server.c b/net/server/cli_server/dap_cli_server.c index 7a42efeab..7d3d0e68b 100644 --- a/net/server/cli_server/dap_cli_server.c +++ b/net/server/cli_server/dap_cli_server.c @@ -54,6 +54,7 @@ static dap_server_t *s_cli_server = NULL; static bool s_debug_cli = false; +static atomic_int_fast64_t s_cmd_thread_count = 0; static dap_cli_cmd_t *cli_commands = NULL; static dap_cli_cmd_aliases_t *s_command_alias = NULL; @@ -424,6 +425,7 @@ dap_cli_cmd_t *dap_cli_server_cmd_find_by_alias(const char *a_alias, char **a_ap } static void *s_cli_cmd_exec(void *a_arg) { + atomic_fetch_add(&s_cmd_thread_count, 1); cli_cmd_arg_t *l_arg = (cli_cmd_arg_t*)a_arg; char *l_ret = dap_cli_cmd_exec(l_arg->buf), *l_full_ret = dap_strdup_printf("HTTP/1.1 200 OK\r\n" @@ -433,6 +435,7 @@ static void *s_cli_cmd_exec(void *a_arg) { dap_events_socket_write_mt(l_arg->worker, l_arg->es_uid, l_full_ret, dap_strlen(l_full_ret)); // TODO: pagination DAP_DEL_MULTY(l_arg->buf, /* l_full_ret, */ l_arg); + atomic_fetch_sub(&s_cmd_thread_count, 1); return NULL; } @@ -542,3 +545,8 @@ char *dap_cli_cmd_exec(char *a_req_str) { dap_json_rpc_request_free(request); return response_string; } + +DAP_INLINE int64_t dap_cli_get_cmd_thread_count() +{ + return atomic_load(&s_cmd_thread_count); +} \ No newline at end of file diff --git a/net/server/cli_server/include/dap_cli_server.h b/net/server/cli_server/include/dap_cli_server.h index 326471849..baa9f82bd 100644 --- a/net/server/cli_server/include/dap_cli_server.h +++ b/net/server/cli_server/include/dap_cli_server.h @@ -75,6 +75,7 @@ dap_cli_cmd_t* dap_cli_server_cmd_find(const char *a_name); void dap_cli_server_alias_add(const char *a_alias, const char *a_pre_cmd, dap_cli_cmd_t *a_cmd); dap_cli_cmd_t *dap_cli_server_cmd_find_by_alias(const char *a_cli, char **a_append, char **a_ncmd); +int64_t dap_cli_get_cmd_thread_count(); //for json int json_commands(const char * a_name); -- GitLab