diff options
author | Kim Alvefur <zash@zash.se> | 2018-10-11 18:50:04 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2018-10-11 18:50:04 +0200 |
commit | 22e0c16d4c94f11cb3bc3a9bd1d57c142627efaf (patch) | |
tree | c03ee59633b6bc1bd379af20cd25d17789d393d9 /util-src | |
parent | 0304fc6ba21791e5f26b8791b903790e901c6619 (diff) | |
download | prosody-22e0c16d4c94f11cb3bc3a9bd1d57c142627efaf.tar.gz prosody-22e0c16d4c94f11cb3bc3a9bd1d57c142627efaf.zip |
util.poll: Early return from __gc in case of no valid epoll FD
This could happen if the epoll FD has already been closed or
the epoll_create call failed
Diffstat (limited to 'util-src')
-rw-r--r-- | util-src/poll.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/util-src/poll.c b/util-src/poll.c index 502c5762..293c8c2b 100644 --- a/util-src/poll.c +++ b/util-src/poll.c @@ -351,6 +351,10 @@ int Lgetfd(lua_State *L) { int Lgc(lua_State *L) { struct Lpoll_state *state = luaL_checkudata(L, 1, STATE_MT); + if(state->epoll_fd != -1) { + return 0; + } + if(close(state->epoll_fd) == 0) { state->epoll_fd = -1; } |