Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 在tcp套接字上生成EPOLLRDHUP事件_Multithreading_Sockets_Tcp_Epoll - Fatal编程技术网

Multithreading 在tcp套接字上生成EPOLLRDHUP事件

Multithreading 在tcp套接字上生成EPOLLRDHUP事件,multithreading,sockets,tcp,epoll,Multithreading,Sockets,Tcp,Epoll,如何通过编程方式使用另一个线程在tcp套接字上触发ePollHup事件 我已经用EPOLLRDHUP事件添加了epoll实例,并试图生成该事件,但它修改了该FD上的事件,而不是触发它 我希望我的第一个线程使用epoll_wait()持续等待事件,应该从EPOLLRDHUP接收事件,一旦另一个线程触发它,我无法获得如何触发该事件,我尝试在另一个线程中使用write系统调用,但我猜这也不会触发套接字FD上的事件,轮询应该来自阻塞循环是我的要求,请帮助,谢谢。您不能从另一个线程在同一文件描述符上生成e

如何通过编程方式使用另一个线程在tcp套接字上触发ePollHup事件

我已经用EPOLLRDHUP事件添加了epoll实例,并试图生成该事件,但它修改了该FD上的事件,而不是触发它


我希望我的第一个线程使用epoll_wait()持续等待事件,应该从EPOLLRDHUP接收事件,一旦另一个线程触发它,我无法获得如何触发该事件,我尝试在另一个线程中使用write系统调用,但我猜这也不会触发套接字FD上的事件,轮询应该来自阻塞循环是我的要求,请帮助,谢谢。

您不能从另一个线程在同一文件描述符上生成epoll事件,EPOLLRDHUP将基于TCP连接另一端发生的事件生成

如果有一个线程正在等待
epoll\u wait()
,并且希望从另一个线程唤醒该线程,那么除了任何TCP套接字之外,还应该在管道的读取端创建一个(),让epoll\u wait等待读取事件。当你想唤醒你的线程时,你需要在管道的写入端写入一个字节

(也可以使用an代替管道来实现同样的效果)