From e5f1374325e34f5a5a07953673ad06e29d9b4f74 Mon Sep 17 00:00:00 2001 From: "kepler155c@gmail.com" Date: Wed, 6 Mar 2019 13:15:36 -0500 Subject: [PATCH] milo performance update --- milo/plugins/importTask.lua | 1 - milo/plugins/inputChestTask.lua | 21 ++++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/milo/plugins/importTask.lua b/milo/plugins/importTask.lua index 1e70ff2..f27a830 100644 --- a/milo/plugins/importTask.lua +++ b/milo/plugins/importTask.lua @@ -74,7 +74,6 @@ function ImportTask:cycle(context) if not s and m then _G._debug('IMPORTER error: ' .. m) end - end) end diff --git a/milo/plugins/inputChestTask.lua b/milo/plugins/inputChestTask.lua index 6c07b16..09dce5b 100644 --- a/milo/plugins/inputChestTask.lua +++ b/milo/plugins/inputChestTask.lua @@ -1,20 +1,35 @@ local Milo = require('milo') +local parallel = _G.parallel + local InputChest = { name = 'input', priority = 10, } function InputChest:cycle(context) + local tasks = { } for node in context.storage:filterActive('input') do - for slot, item in pairs(node.adapter.list()) do + table.insert(tasks, function() local s, m = pcall(function() - context.storage:import(node, slot, item.count, item) + for slot, item in pairs(node.adapter.list()) do + local s, m = pcall(function() + context.storage:import(node, slot, item.count, item) + end) + if not s and m then + _G._debug('INPUT error: ' .. m) + end + end end) + if not s and m then _G._debug('INPUT error: ' .. m) end - end + end) + end + + if #tasks > 0 then + parallel.waitForAll(table.unpack(tasks)) end end