Software /
code /
prosody
Comparison
net/server_epoll.lua @ 11811:ae43166fe931 0.11
net.server_epoll: Add a hard deadline on shutdown to extra-fix #1670
Should ensure shutdown even if sockets somehow take a very long to get closed.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 20 Sep 2021 14:38:08 +0200 |
parent | 11810:fe0cdbad19c3 |
child | 11812:42e98179c034 |
child | 12084:59557bc3c4b8 |
comparison
equal
deleted
inserted
replaced
11810:fe0cdbad19c3 | 11811:ae43166fe931 |
---|---|
56 ssl_handshake_timeout = 60; | 56 ssl_handshake_timeout = 60; |
57 | 57 |
58 -- Maximum and minimum amount of time to sleep waiting for events (adjusted for pending timers) | 58 -- Maximum and minimum amount of time to sleep waiting for events (adjusted for pending timers) |
59 max_wait = 86400; | 59 max_wait = 86400; |
60 min_wait = 1e-06; | 60 min_wait = 1e-06; |
61 | |
62 --- How long to wait after getting the shutdown signal before forcefully tearing down every socket | |
63 shutdown_deadline = 5; | |
61 }}; | 64 }}; |
62 local cfg = default_config.__index; | 65 local cfg = default_config.__index; |
63 | 66 |
64 local fds = createtable(10, 0); -- FD -> conn | 67 local fds = createtable(10, 0); -- FD -> conn |
65 | 68 |
747 if quitting then | 750 if quitting then |
748 closeall(); | 751 closeall(); |
749 return 1; | 752 return 1; |
750 end | 753 end |
751 end); | 754 end); |
755 if cfg.shutdown_deadline then | |
756 addtimer(cfg.shutdown_deadline, function () | |
757 if quitting then | |
758 for fd, conn in pairs(fds) do -- luacheck: ignore 213/fd | |
759 conn:destroy(); | |
760 end | |
761 end | |
762 end); | |
763 end | |
752 else | 764 else |
753 quitting = nil; | 765 quitting = nil; |
754 end | 766 end |
755 end | 767 end |
756 | 768 |