我有几个线程,其中一个线程循环调用epoll_wait
,其他线程可以打开需要由第一个线程epoll
的连接。是否可以在另一个线程在epoll_wait
等待时使用epoll_ctl
添加新的套接字?
以下是可能发生的情况:
- 线程1调用
epoll_wait
。 - 线程2创建一个套接字(A),并使用
epoll_ctl
将其添加到epoll实例中。 - 某人发送一些数据,套接字A已准备好进行读取调用。
epoll_wait
会返回套接字A吗?
我有几个线程,其中一个线程循环调用epoll_wait
,其他线程可以打开需要由第一个线程epoll
的连接。是否可以在另一个线程在epoll_wait
等待时使用epoll_ctl
添加新的套接字?
以下是可能发生的情况:
epoll_wait
。epoll_ctl
将其添加到epoll实例中。epoll_wait
会返回套接字A吗?
epoll
套接字的全部目的就是避免重复努力。不涉及快照或使用多个等待队列。epoll
套接字有自己的等待队列。当你在epoll
套接字上阻塞时,你会被添加到那个单一的等待队列。没有保存状态或类似的东西。状态在epoll
套接字本身中。