|
|
|
@ -64,18 +64,19 @@ function network.pull()
|
|
|
|
local message = inject_message[current_node][1]
|
|
|
|
local message = inject_message[current_node][1]
|
|
|
|
table.remove(inject_message[current_node], 1)
|
|
|
|
table.remove(inject_message[current_node], 1)
|
|
|
|
|
|
|
|
|
|
|
|
-- print("pulled "..require("serialization").serialize(message))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- Actually send the injected message now
|
|
|
|
-- Actually send the injected message now
|
|
|
|
|
|
|
|
-- but save the last latest_message
|
|
|
|
|
|
|
|
local latest = latest_message[current_node]
|
|
|
|
table.insert(active_node, message.from)
|
|
|
|
table.insert(active_node, message.from)
|
|
|
|
network.send(current_node, message.port, message.msg)
|
|
|
|
network.send(current_node, message.port, message.msg)
|
|
|
|
active_node[#active_node] = nil
|
|
|
|
active_node[#active_node] = nil
|
|
|
|
|
|
|
|
latest_message[current_node] = latest
|
|
|
|
|
|
|
|
|
|
|
|
return "modem_message", current_node, message.from, message.port, 0, message.msg
|
|
|
|
return "modem_message", current_node, message.from, message.port, 0, message.msg
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if latest_message[current_node] == nil then
|
|
|
|
if latest_message[current_node] == nil then
|
|
|
|
error("Tried to pull while no message was available")
|
|
|
|
return nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
local message = latest_message[current_node]
|
|
|
|
local message = latest_message[current_node]
|
|
|
|
|
|
|
|
|
|
|
|
|