读书人

linux中求怎么通知epoll_wait退出

发布时间: 2013-04-21 21:18:07 作者: rapoo

linux中求如何通知epoll_wait退出
int a = epoll_wait(b,ev,65535,-1);
使用close(b);epoll_wait也一直卡着。
怎么通知epoll_wait我要退出epoll呢? epoll_wait Linux epoll 退出
[解决办法]
让其一开始就监听一个pipe的读端,
如果要让其停止,则向pipe的写端写入一字节,或者关闭写端等等。 这样epoll_wait返回后,检测状态改变的是否为此pipe,,是,则进入退出处理过程。


或者首先设置一个标志位flag ,,, 向进程发送一个信号看看,先用signal(SIGUSR1, handler),
然后epoll_wait时,,向此进程发送信号kill(pid, SIGUSR1);
handler可以是空函数,什么都不作。。 从理论上epoll_wait应该会返回-1, errno == EINTR. 然后你就检测下某个flag是否置位,如果置位,代表要退出了。 这种方案没试验过。。 用上一种方案好些,

读书人网 >UNIXLINUX

热点推荐