diff options
author | Kim Alvefur <zash@zash.se> | 2023-11-21 17:43:46 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2023-11-21 17:43:46 +0100 |
commit | c8e2129a82d666571b48232f39bfae30a0470db2 (patch) | |
tree | c7badd20561a0d187bba4ebc371e3a6be13724c2 /util-src/poll.c | |
parent | 43d1285dbd6914b497d6c7684160d9dd57b97120 (diff) | |
download | prosody-c8e2129a82d666571b48232f39bfae30a0470db2.tar.gz prosody-c8e2129a82d666571b48232f39bfae30a0470db2.zip |
util.poll: Return early if given zero timeout and no pending events
Should have been part of f33887f925e1 to ensure it won't skip processing
timers at all when very busy.
Diffstat (limited to 'util-src/poll.c')
-rw-r--r-- | util-src/poll.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/util-src/poll.c b/util-src/poll.c index 6ec9ae35..d3d7640f 100644 --- a/util-src/poll.c +++ b/util-src/poll.c @@ -411,6 +411,12 @@ static int Lwait(lua_State *L) { lua_Number timeout = luaL_checknumber(L, 2); luaL_argcheck(L, timeout >= 0, 1, "positive number expected"); + if(timeout == 0.0) { + lua_pushnil(L); + lua_pushstring(L, "timeout"); + return 2; + } + #ifdef USE_EPOLL ret = epoll_wait(state->epoll_fd, state->events, MAX_EVENTS, timeout * 1000); #endif |