add function sf_client_sock_in_read_stage

connection_manager
yuqing 2018-07-30 10:56:48 +08:00
parent a112039aa4
commit 1928ae42cc
2 changed files with 14 additions and 9 deletions

View File

@ -32,8 +32,6 @@ static sf_set_body_length_callback sf_set_body_length = NULL;
static TaskCleanUpCallback sf_task_cleanup_func = sf_task_finish_clean_up; static TaskCleanUpCallback sf_task_cleanup_func = sf_task_finish_clean_up;
static sf_recv_timeout_callback sf_timeout_callback = NULL; static sf_recv_timeout_callback sf_timeout_callback = NULL;
static int client_sock_read(int sock, short event, void *arg);
void sf_set_parameters(const int header_size, sf_set_body_length_callback void sf_set_parameters(const int header_size, sf_set_body_length_callback
set_body_length_func, sf_deal_task_func deal_func, set_body_length_func, sf_deal_task_func deal_func,
TaskCleanUpCallback cleanup_func, TaskCleanUpCallback cleanup_func,
@ -113,15 +111,16 @@ void sf_recv_notify_read(int sock, short event, void *arg)
break; break;
} }
current_connections = __sync_add_and_fetch(&g_sf_global_vars.connection_stat. current_connections = __sync_add_and_fetch(
current_count, 1); &g_sf_global_vars.connection_stat.current_count, 1);
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;
} }
pTask = (struct fast_task_info *)task_ptr; pTask = (struct fast_task_info *)task_ptr;
if (ioevent_set(pTask, pTask->thread_data, pTask->event.fd, IOEVENT_READ, if (ioevent_set(pTask, pTask->thread_data, pTask->event.fd,
(IOEventCallback)client_sock_read, g_sf_global_vars.network_timeout) != 0) IOEVENT_READ, (IOEventCallback)sf_client_sock_read,
g_sf_global_vars.network_timeout) != 0)
{ {
sf_task_cleanup_func(pTask); sf_task_cleanup_func(pTask);
continue; continue;
@ -157,11 +156,11 @@ static inline int set_read_event(struct fast_task_info *pTask)
{ {
int result; int result;
if (pTask->event.callback == (IOEventCallback)client_sock_read) { if (pTask->event.callback == (IOEventCallback)sf_client_sock_read) {
return 0; return 0;
} }
pTask->event.callback = (IOEventCallback)client_sock_read; pTask->event.callback = (IOEventCallback)sf_client_sock_read;
if (ioevent_modify(&pTask->thread_data->ev_puller, if (ioevent_modify(&pTask->thread_data->ev_puller,
pTask->event.fd, IOEVENT_READ, pTask) != 0) pTask->event.fd, IOEVENT_READ, pTask) != 0)
{ {
@ -191,7 +190,7 @@ int sf_send_add_event(struct fast_task_info *pTask)
return 0; return 0;
} }
static int client_sock_read(int sock, short event, void *arg) int sf_client_sock_read(int sock, short event, void *arg)
{ {
int bytes; int bytes;
int recv_bytes; int recv_bytes;

View File

@ -23,9 +23,15 @@ TaskCleanUpCallback sf_get_task_cleanup_func();
void sf_recv_notify_read(int sock, short event, void *arg); void sf_recv_notify_read(int sock, short event, void *arg);
int sf_send_add_event(struct fast_task_info *pTask); int sf_send_add_event(struct fast_task_info *pTask);
int sf_client_sock_write(int sock, short event, void *arg); int sf_client_sock_write(int sock, short event, void *arg);
int sf_client_sock_read(int sock, short event, void *arg);
void sf_task_finish_clean_up(struct fast_task_info *pTask); void sf_task_finish_clean_up(struct fast_task_info *pTask);
static inline bool sf_client_sock_in_read_stage(struct fast_task_info *pTask)
{
return (pTask->event.callback == (IOEventCallback)sf_client_sock_read);
}
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif