From 30b534b558984b2c046992d3b5a2fda3bee5916c Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Thu, 3 Jun 2021 08:08:39 +0800 Subject: [PATCH] ignore break sessions, See issue #1413 --- lualib/skynet.lua | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lualib/skynet.lua b/lualib/skynet.lua index 9891bf2c..4f1ae174 100644 --- a/lualib/skynet.lua +++ b/lualib/skynet.lua @@ -968,7 +968,9 @@ function skynet.task(ret) if ret == nil then local t = 0 for session,co in pairs(session_id_coroutine) do - t = t + 1 + if co ~= "BREAK" then + t = t + 1 + end end return t end @@ -983,7 +985,9 @@ function skynet.task(ret) if tt == "table" then for session,co in pairs(session_id_coroutine) do local key = string.format("%s session: %d", tostring(co), session) - if timeout_traceback and timeout_traceback[co] then + if co == "BREAK" then + ret[key] = "BREAK" + elseif timeout_traceback and timeout_traceback[co] then ret[key] = timeout_traceback[co] else ret[key] = traceback(co) @@ -993,7 +997,11 @@ function skynet.task(ret) elseif tt == "number" then local co = session_id_coroutine[ret] if co then - return traceback(co) + if co == "BREAK" then + return "BREAK" + else + return traceback(co) + end else return "No session" end