SF_NIO_STAGE_CONNECT stage should call inc_connection_current_count

support_rdma
YuQing 2023-09-22 18:44:32 +08:00
parent be9b71422f
commit fee1e28348
1 changed files with 10 additions and 5 deletions

View File

@ -175,16 +175,20 @@ static inline int sf_ioevent_add(struct fast_task_info *task,
return result > 0 ? -1 * result : result; 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; int current_connections;
current_connections = __sync_add_and_fetch( current_connections = FC_ATOMIC_INC(g_sf_global_vars.
&g_sf_global_vars.connection_stat.current_count, 1); connection_stat.current_count);
if (current_connections > g_sf_global_vars.connection_stat.max_count) { if (current_connections > g_sf_global_vars.connection_stat.max_count) {
g_sf_global_vars.connection_stat.max_count = current_connections; 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, return sf_ioevent_add(task, (IOEventCallback)sf_client_sock_read,
task->network_timeout); task->network_timeout);
} }
@ -301,11 +305,12 @@ static int sf_nio_deal_task(struct fast_task_info *task, const int stage)
int result; int result;
switch (stage) { switch (stage) {
case SF_NIO_STAGE_INIT: case SF_NIO_STAGE_INIT: //for server init
task->nio_stages.current = SF_NIO_STAGE_RECV; task->nio_stages.current = SF_NIO_STAGE_RECV;
result = sf_nio_init(task); result = sf_nio_init(task);
break; break;
case SF_NIO_STAGE_CONNECT: case SF_NIO_STAGE_CONNECT: //for client init
inc_connection_current_count();
result = sf_async_connect_server(task); result = sf_async_connect_server(task);
break; break;
case SF_NIO_STAGE_RECV: case SF_NIO_STAGE_RECV: