Issue#12 Changed

Modify the newThread method to allow for nameless coroutine based threads
This commit is contained in:
Ryan Ward 2019-03-23 20:54:29 -04:00
parent 31f1e10cfc
commit 8afef44252
2 changed files with 15 additions and 35 deletions

View File

@ -1495,8 +1495,13 @@ end
multi:setDomainName("Threads")
multi:setDomainName("Globals")
local initT = false
local threadCount = 0
function multi:newThread(name,func)
if not func then return end
local func = func
if type(name) == "function" then
func = name
name = "Thread#"..threadCount
end
local c={}
c.ref={}
c.Name=name

View File

@ -1,38 +1,13 @@
--~ package.path="?/init.lua;?.lua;"..package.path
package.path="?/init.lua;?.lua;"..package.path
multi = require("multi")
--~ local GLOBAL,THREAD = require("multi.integration.lanesManager").init()
--~ nGLOBAL = require("multi.integration.networkManager").init()
--~ local a
--~ local clock = os.clock
--~ function sleep(n) -- seconds
--~ local t0 = clock()
--~ while clock() - t0 <= n do end
--~ end
--~ master = multi:newMaster{
--~ name = "Main", -- the name of the master
--~ noBroadCast = true, -- if using the node manager, set this to true to avoid double connections
--~ managerDetails = {"localhost",12345}, -- the details to connect to the node manager (ip,port)
--~ }
--~ master.OnError(function(name,err)
--~ print(name.." has encountered an error: "..err)
--~ end)
--~ local connlist = {}
--~ multi:newThread("NodeUpdater",function()
--~ while true do
--~ thread.sleep(1)
--~ for i=1,#connlist do
--~ master:execute("TASK_MAN",connlist[i], multi:getTasksDetails())
--~ end
--~ end
--~ end)
--~ master.OnNodeConnected(function(name)
--~ print("Connected to the node")
--~ table.insert(connlist,name)
--~ end)
--~ multi.OnError(function(...)
--~ print(...)
--~ end)
print("HI!")
local GLOBAL,THREAD = require("multi.integration.lanesManager").init()
nGLOBAL = require("multi.integration.networkManager").init()
multi:newThread(function()
error("Did it work?")
end)
multi.OnError(function(...)
print(...)
end)
multi:mainloop{
protect = false,
print = true