ub_server_running_worker_thread_main_loop
2016-06-22 19:12:45 0 举报
`ub_server_running_worker_thread_main_loop` 是一个函数或方法,用于在服务器上运行工作线程的主循环。这个主循环负责处理客户端的请求、执行任务和响应客户端。在循环中,工作线程会不断地监听客户端连接、读取请求数据、处理请求并发送响应。这个过程是异步的,可以同时处理多个客户端的请求。当没有新的客户端连接时,工作线程会进入休眠状态,以降低资源消耗。总之,`ub_server_running_worker_thread_main_loop` 是服务器工作线程的核心部分,负责实现高性能、高并发的网络通信。
作者其他创作
大纲/内容
return ret;
rpc_server_log_pack(\"input\
static int rpc_handle_callback()
创建本thread专用epolldata-epfd = xpool_epoll_create();
执行内层回调函数真正处理本次请求sev-cb_drastic();
Y
按长连接处理,继续循环等待处理同一链接上的下个请求
执行外层回调函数真正地处理本次请求sev-cb_native() == 0
按短链接处理,关闭本次链接回到主循环,等待处理新的链接
获取本线程的per-thread数据结构ub_server_pdata_t *data = (ub_server_pdata_t *)param;set_pthread_data(data);
N
全局ub server结构体仍然处于运行状态while (sev-run)
server处理链接类型是否只处理短链接?UBSVR_SHORT_CONNECT ?
是否有事件?ret 0 ?
nshead_t *inhead = (nshead_t *)in;nshead_t *outhead = (nshead_t *)out;mc_pack_t *inpack = (mc_pack_t *)(inhead + 1);mc_pack_t *outpack = NULL;
do ...
获取本线程per-thread的读写缓冲区地址和大小nshead_t *req = (nshead_t *)ub_server_get_read_buf();int reqsiz = ub_server_get_read_size();nshead_t *res = (nshead_t *)ub_server_get_write_buf();int roto = ub_server_get_read_timeout();int wtto = ub_server_get_write_timeout();
int default_native()
return 0;
mc_pack_close(outpack);outhead-body_len = mc_pack_get_size(outpack);rpc_server_log_pack(\"output\
void *_xpool_main(void *param)
如果全局ub server结构体仍然处于运行状态while (sev-run)
0 条评论
下一页