using indirect macro USE_EPOLL instead of __linux__ for more flexibility