server_epoll: Flush and close all connections before quitting mainloop so no data is lost in buffers

vault/0.11
Kim Alvefur 9 years ago
parent 13c03a7e3b
commit 4cdac4facb
  1. 4
      net/server_epoll.lua

@ -15,6 +15,7 @@ local t_concat = table.concat;
local setmetatable = setmetatable;
local tostring = tostring;
local pcall = pcall;
local next = next;
local pairs = pairs;
local log = require "util.logger".init("server_epoll");
local epoll = require "epoll";
@ -615,6 +616,7 @@ local quitting = nil;
local function setquitting(quit)
if quit then
quitting = "quitting";
closeall();
else
quitting = nil;
end
@ -641,7 +643,7 @@ local function loop(once)
elseif r ~= "timeout" then
log("debug", "epoll_wait error: %s", tostring(r));
end
until once or quitting;
until once or (quitting and next(fds) == nil);
return quitting;
end

Loading…
Cancel
Save