diff options
| author | ruki <[email protected]> | 2022-07-05 23:14:22 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-07-05 23:14:22 +0800 |
| commit | 7b87fb6a25edcf3cf3bef9b6d8f6098249f24fa3 (patch) | |
| tree | a9c0c50cf981d01edef60c3e2e24a3330b4d035b /xmake/modules/private/service/server.lua | |
| parent | c94c4d9aa8fe72a25358e89fa608f3457e9ee1f7 (diff) | |
fix recv timeout
Diffstat (limited to 'xmake/modules/private/service/server.lua')
| -rw-r--r-- | xmake/modules/private/service/server.lua | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/xmake/modules/private/service/server.lua b/xmake/modules/private/service/server.lua index 4b40373ff..4dcbbf4ec 100644 --- a/xmake/modules/private/service/server.lua +++ b/xmake/modules/private/service/server.lua @@ -191,9 +191,24 @@ function server:_handle_session(sock) print("%s: %s: session connected", self, sock) local stream = socket_stream(sock, {timeout = self:timeout()}) while true do - local msg = stream:recv_object() + local msg = stream:recv_object({timeout = -1}) if msg then - self:_HANDLER(stream, message(msg)) + local ok = try + { + function () + self:_HANDLER(stream, message(msg)) + return true + end, + catch + { + function (errors) + vprint(errors) + end + } + } + if not ok then + break + end else break end |
