TKeed tk_epoll_wait函数详解

函数定义如下:

int tk_epoll_wait(int epoll_fd, struct epoll_event* events, int max_events, int timeout) {
	int ret_count = epoll_wait(epoll_fd, events, max_events, timeout);
	return ret_count;
}

main.c中对该函数的调用代码如下:

while (1) {
		// 得到最近且未删除时间和当前时间差值(等待时间)
		int time = tk_find_timer();

		// 调用epoll_wait函数,返回接收到事件的数量
		int events_num = tk_epoll_wait(epoll_fd, events, MAXEVENTS, -1);

		// 处理已经超时的请求
		tk_handle_expire_timers();

		// 遍历events数组,根据监听种类及描述符类型分发操作
		tk_handle_events(epoll_fd, listen_fd, events, events_num, conf.root, tp);
	}

该函数主要用于返回接收到事件的数量。
epoll_wait函数详解:
函数声明:int epoll_wait(int epfd,struct epoll_event * events,int maxevents,int timeout)
该函数用于轮询I/O事件的发生;
参数:
epoll_fd:由epoll_create 生成的epoll专用的文件描述符;
events:用于回传代处理事件的数组;
MAXEVENTS:每次能处理的事件数;
timeout:等待I/O事件发生的超时值:-1意味着一直等待直到事件发生,0则立刻返回,正数表示等待时间

上一篇:内部服务器错误Internal server error解决方法


下一篇:pip install mysql-client 出错解决方式