diff options
Diffstat (limited to 'libtransport/src/utils/epoll_event_reactor.cc')
-rw-r--r-- | libtransport/src/utils/epoll_event_reactor.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libtransport/src/utils/epoll_event_reactor.cc b/libtransport/src/utils/epoll_event_reactor.cc index 0e6590d0e..63c08df95 100644 --- a/libtransport/src/utils/epoll_event_reactor.cc +++ b/libtransport/src/utils/epoll_event_reactor.cc @@ -104,12 +104,15 @@ void EpollEventReactor::runEventLoop(int timeout) { while (run_event_loop_) { memset(&evt, 0, sizeof(evt)); - en = epoll_pwait(epoll_fd_, evt, 128, timeout, &sigset); if (TRANSPORT_EXPECT_FALSE(en < 0)) { TRANSPORT_LOGE("epoll_pwait: %s", strerror(errno)); - return; + if (errno == EINTR) { + continue; + } else { + return; + } } for (int i = 0; i < en; i++) { |