diff --git a/libratbox/src/epoll.c b/libratbox/src/epoll.c index 6ec3b18..b6c4e28 100644 --- a/libratbox/src/epoll.c +++ b/libratbox/src/epoll.c @@ -253,6 +253,7 @@ rb_epoll_supports_event(void) /* try to detect at runtime if everything we need actually works */ timer_t timer; struct sigevent ev; + struct stat st; int fd; sigset_t set; @@ -261,6 +262,13 @@ rb_epoll_supports_event(void) if(can_do_event == -1) return 0; + /* Check for openvz..it has a broken timerfd.. */ + if(stat("/proc/user_beancounters", &st) == 0) + { + can_do_event = -1; + return 0; + } + #ifdef USE_TIMERFD_CREATE if((fd = timerfd_create(CLOCK_REALTIME, 0)) >= 0) {