Software / code / prosody
Changeset
9508:2055b497b515
net.server_epoll: Special handling of signal interrupts
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 12 Oct 2018 03:22:09 +0200 |
| parents | 9507:33d21f020b66 |
| children | 9509:b57353f76c83 |
| files | net/server_epoll.lua util-src/poll.c |
| diffstat | 2 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/net/server_epoll.lua Fri Oct 12 03:21:11 2018 +0200 +++ b/net/server_epoll.lua Fri Oct 12 03:22:09 2018 +0200 @@ -742,7 +742,7 @@ log("debug", "Removing unknown fd %d", fd); poll:del(fd); end - elseif r ~= "timeout" then + elseif r ~= "timeout" and r ~= "signal" then log("debug", "epoll_wait error: %s[%d]", r, w); end until once or (quitting and next(fds) == nil);
--- a/util-src/poll.c Fri Oct 12 03:21:11 2018 +0200 +++ b/util-src/poll.c Fri Oct 12 03:22:09 2018 +0200 @@ -316,6 +316,11 @@ lua_pushstring(L, "timeout"); return 2; } + else if(ret < 0 && errno == EINTR) { + lua_pushnil(L); + lua_pushstring(L, "signal"); + return 2; + } else if(ret < 0) { ret = errno; lua_pushnil(L);