add function sf_client_sock_in_read_stage
parent
a112039aa4
commit
1928ae42cc
17
src/sf_nio.c
17
src/sf_nio.c
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue