From 0ff2cf604c4501136216578856d5d92db7f244a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=A3=8E?= Date: Mon, 22 Oct 2012 21:56:01 +0800 Subject: [PATCH] bugfix: cast empty group --- lualib/skynet.lua | 4 +++- skynet-src/skynet_multicast.c | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lualib/skynet.lua b/lualib/skynet.lua index 372ee8c1..366b35e4 100644 --- a/lualib/skynet.lua +++ b/lualib/skynet.lua @@ -178,7 +178,9 @@ end function skynet.cast(group, typename, ...) local p = proto[typename] - return c.send(".cast", p.id, 0, mc(group, p.pack(...))) + if #group > 0 then + return c.send(".cast", p.id, 0, mc(group, p.pack(...))) + end end skynet.genid = assert(c.genid) diff --git a/skynet-src/skynet_multicast.c b/skynet-src/skynet_multicast.c index 12fd24a6..ba2b74bb 100644 --- a/skynet-src/skynet_multicast.c +++ b/skynet-src/skynet_multicast.c @@ -216,6 +216,8 @@ void skynet_multicast_cast(struct skynet_context * from, struct skynet_multicast_message *msg, const uint32_t *dests, int n) { uint32_t source = skynet_context_handle(from); skynet_multicast_copy(msg, n); + if (n == 0) + return; int i; int release = 0; for (i=0;i