epoll_wait
如果被任何原因(例如被 SIGINT)打断,我想处理
while ( true ) {
n = epoll_wait ( epoll_fd, events, max_events, -1 );
if ( errno == EINTR ) {
...
}
}
但是调试器甚至没有去if
。程序于 终止epoll_wait
。我添加了一些魔法:
signal ( SIGINT, placebo );
while ( true ) {
n = epoll_wait ( epoll_fd, events, max_events, -1 );
if ( errno == EINTR ) {
...
}
}
并且所有工作都按预期进行。但这很丑陋。让我处理任何epoll_wait
中断的正确方法是什么?