aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--util-src/poll.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/util-src/poll.c b/util-src/poll.c
index 293c8c2b..d2d9dc03 100644
--- a/util-src/poll.c
+++ b/util-src/poll.c
@@ -386,8 +386,19 @@ int Lnew(lua_State *L) {
/* Initialize state */
#ifdef USE_EPOLL
- state->epoll_fd = epoll_create1(0);
+ state->epoll_fd = -1;
state->processed = 0;
+
+ int epoll_fd = epoll_create1(EPOLL_CLOEXEC);
+
+ if(epoll_fd <= 0) {
+ lua_pushnil(L);
+ lua_pushstring(L, strerror(errno));
+ lua_pushinteger(L, errno);
+ return 3;
+ }
+
+ state->epoll_fd = epoll_fd;
#else
FD_ZERO(&state->wantread);
FD_ZERO(&state->wantwrite);