summaryrefslogtreecommitdiff
path: root/poll/unix/epoll.c
diff options
context:
space:
mode:
Diffstat (limited to 'poll/unix/epoll.c')
-rw-r--r--poll/unix/epoll.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/poll/unix/epoll.c b/poll/unix/epoll.c
index c00a1094d..1652f9d27 100644
--- a/poll/unix/epoll.c
+++ b/poll/unix/epoll.c
@@ -25,9 +25,9 @@
#if defined(HAVE_EPOLL)
-static apr_int16_t get_epoll_event(apr_int16_t event)
+static unsigned get_epoll_event(apr_int16_t event)
{
- apr_int16_t rv = 0;
+ unsigned rv = 0;
if (event & APR_POLLIN)
rv |= EPOLLIN;
@@ -35,12 +35,16 @@ static apr_int16_t get_epoll_event(apr_int16_t event)
rv |= EPOLLPRI;
if (event & APR_POLLOUT)
rv |= EPOLLOUT;
+#ifdef EPOLLEXCLUSIVE
+ if (event & APR_POLLEXCL)
+ rv |= EPOLLEXCLUSIVE;
+#endif
/* APR_POLLNVAL is not handled by epoll. EPOLLERR and EPOLLHUP are return-only */
return rv;
}
-static apr_int16_t get_epoll_revent(apr_int16_t event)
+static apr_int16_t get_epoll_revent(unsigned event)
{
apr_int16_t rv = 0;