From 7b87fb6a25edcf3cf3bef9b6d8f6098249f24fa3 Mon Sep 17 00:00:00 2001 From: ruki Date: Tue, 5 Jul 2022 23:14:22 +0800 Subject: fix recv timeout --- xmake/modules/private/service/server.lua | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'xmake/modules/private/service/server.lua') 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 -- cgit v1.3.1