From fee1e28348611efddda59537a3893a9cb1837448 Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Fri, 22 Sep 2023 18:44:32 +0800 Subject: [PATCH] SF_NIO_STAGE_CONNECT stage should call inc_connection_current_count --- src/sf_nio.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/sf_nio.c b/src/sf_nio.c index 3fec70f..a2255af 100644 --- a/src/sf_nio.c +++ b/src/sf_nio.c @@ -175,16 +175,20 @@ static inline int sf_ioevent_add(struct fast_task_info *task, return result > 0 ? -1 * result : result; } -static inline int sf_nio_init(struct fast_task_info *task) +static inline void inc_connection_current_count() { int current_connections; - current_connections = __sync_add_and_fetch( - &g_sf_global_vars.connection_stat.current_count, 1); + current_connections = FC_ATOMIC_INC(g_sf_global_vars. + connection_stat.current_count); if (current_connections > g_sf_global_vars.connection_stat.max_count) { g_sf_global_vars.connection_stat.max_count = current_connections; } +} +static inline int sf_nio_init(struct fast_task_info *task) +{ + inc_connection_current_count(); return sf_ioevent_add(task, (IOEventCallback)sf_client_sock_read, task->network_timeout); } @@ -301,11 +305,12 @@ static int sf_nio_deal_task(struct fast_task_info *task, const int stage) int result; switch (stage) { - case SF_NIO_STAGE_INIT: + case SF_NIO_STAGE_INIT: //for server init task->nio_stages.current = SF_NIO_STAGE_RECV; result = sf_nio_init(task); break; - case SF_NIO_STAGE_CONNECT: + case SF_NIO_STAGE_CONNECT: //for client init + inc_connection_current_count(); result = sf_async_connect_server(task); break; case SF_NIO_STAGE_RECV: