From ace41d7c2261241c047cb7ef0ead77f6c3cc9b6d Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Fri, 2 Dec 2016 20:39:49 +0800 Subject: [PATCH] clusterd support send --- lualib/cluster.lua | 5 +++++ lualib/skynet.lua | 3 +++ 2 files changed, 8 insertions(+) diff --git a/lualib/cluster.lua b/lualib/cluster.lua index dba8f318..9883227f 100644 --- a/lualib/cluster.lua +++ b/lualib/cluster.lua @@ -8,6 +8,11 @@ function cluster.call(node, address, ...) return skynet.call(clusterd, "lua", "req", node, address, skynet.pack(...)) end +function cluster.send(node, address, ...) + -- skynet.pack(...) will free by cluster.core.packrequest + skynet.send(clusterd, "lua", "req", node, address, skynet.pack(...)) +end + function cluster.open(port) if type(port) == "string" then skynet.call(clusterd, "lua", "listen", port) diff --git a/lualib/skynet.lua b/lualib/skynet.lua index 9a590d1d..c3b98942 100644 --- a/lualib/skynet.lua +++ b/lualib/skynet.lua @@ -161,6 +161,9 @@ function suspend(co, result, command, param, size) sleep_session[co] = param elseif command == "RETURN" then local co_session = session_coroutine_id[co] + if co_session == 0 then + return suspend(co, coroutine_resume(co, false)) -- send don't need ret + end local co_address = session_coroutine_address[co] if param == nil or session_response[co] then error(debug.traceback(co))