Skip to content

Instantly share code, notes, and snippets.

@postwait
Created January 9, 2015 18:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save postwait/1a2cae20da0f6defd65e to your computer and use it in GitHub Desktop.
Save postwait/1a2cae20da0f6defd65e to your computer and use it in GitHub Desktop.
diff --git a/src/eventer/eventer_epoll_impl.c b/src/eventer/eventer_epoll_impl.c
index bd38f02..5945854 100644
--- a/src/eventer/eventer_epoll_impl.c
+++ b/src/eventer/eventer_epoll_impl.c
@@ -275,14 +275,17 @@ static int eventer_epoll_impl_loop() {
__sleeptime = eventer_max_sleeptime;
+ gettimeofday(&__now, NULL);
eventer_dispatch_timed(&__now, &__sleeptime);
/* Handle recurrent events */
eventer_dispatch_recurrent(&__now);
/* Now we move on to our fd-based events */
- fd_cnt = epoll_wait(spec->epoll_fd, epev, maxfds,
- __sleeptime.tv_sec * 1000 + __sleeptime.tv_usec / 1000);
+ do {
+ fd_cnt = epoll_wait(spec->epoll_fd, epev, maxfds,
+ __sleeptime.tv_sec * 1000 + __sleeptime.tv_usec / 1000);
+ } while(fd_cnt < 0 && errno == EINTR);
noitLT(eventer_deb, &__now, "debug: epoll_wait(%d, [], %d) => %d\n",
spec->epoll_fd, maxfds, fd_cnt);
if(fd_cnt < 0) {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment