From 227cba54b2192bac4ea2717e1e3c9d7a3664eb73 Mon Sep 17 00:00:00 2001 From: upsilon Date: Sun, 7 Mar 2021 10:17:05 +0100 Subject: [PATCH] Avoid stack overflow using wireless + digilines Fixes #16 --- moremesecons_wireless/init.lua | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/moremesecons_wireless/init.lua b/moremesecons_wireless/init.lua index dbed9a3..0dc0765 100644 --- a/moremesecons_wireless/init.lua +++ b/moremesecons_wireless/init.lua @@ -264,11 +264,14 @@ local function on_digiline_receive(pos, node, channel, msg) return end - for i, wl_pos in pairs(wireless[wls.owner][wls.channel].members) do - if i ~= wls.id and check_wireless_exists(wl_pos) then - digiline:receptor_send(wl_pos, digiline.rules.default, channel, msg) + -- Why is delaying required? https://github.com/minetest-mods/MoreMesecons/issues/16 + minetest.after(0, function() + for i, wl_pos in pairs(wireless[wls.owner][wls.channel].members) do + if i ~= wls.id and check_wireless_exists(wl_pos) then + digiline:receptor_send(wl_pos, digiline.rules.default, channel, msg) + end end - end + end) end mesecon.register_node("moremesecons_wireless:wireless", {