moonbridge

changeset 287:2fe69234cbe9

Use new sigterm handling in moonbridge_http
author jbe
date Sun Jun 11 01:27:52 2017 +0200 (2017-06-11)
parents 26a16090276d
children 524bb61496b5
files moonbridge_http.lua
line diff
     1.1 --- a/moonbridge_http.lua	Sun Jun 11 00:06:34 2017 +0200
     1.2 +++ b/moonbridge_http.lua	Sun Jun 11 01:27:52 2017 +0200
     1.3 @@ -205,13 +205,7 @@
     1.4    local poll = options.poll_function or moonbridge_io.poll
     1.5    -- return socket handler:
     1.6    return function(socket)
     1.7 -    -- install SIGTERM handler and initialize some variables:
     1.8 -    local sigterm_socket = moonbridge_io.signalsocket("TERM")
     1.9      local socket_set = {[socket] = true}  -- used for poll function
    1.10 -    local socket_term_set = {             -- used for poll function
    1.11 -      [socket] = true,
    1.12 -      [sigterm_socket] = true  -- also wakeup if SIGTERM has been received
    1.13 -    }
    1.14      local survive = true  -- set to false if process shall be terminated later
    1.15      local consume  -- can be set to function that reads some input if possible
    1.16      -- function that may be used as "consume" function
    1.17 @@ -1100,12 +1094,12 @@
    1.18          return true  -- success
    1.19        end
    1.20        -- wait for input:
    1.21 -      if not poll(socket_term_set, nil, idle_timeout) then
    1.22 +      if not poll(socket_set, nil, idle_timeout, true) then
    1.23 +        if moonbridge_io.sigterm_received() then
    1.24 +          return request_error(false, "408 Request Timeout", "Server shutdown")
    1.25 +        end
    1.26          return request_error(false, "408 Request Timeout", "Idle connection timed out")
    1.27        end
    1.28 -      if #assert(sigterm_socket:read_nb()) > 0 then
    1.29 -        return request_error(false, "408 Request Timeout", "Server shutdown")
    1.30 -      end
    1.31        -- read headers (with timeout):
    1.32        do
    1.33          local coro = coroutine.wrap(read_headers)

Impressum / About Us