diff --git a/examples/love2d Threading Example/multi/init.lua b/examples/love2d Threading Example/multi/init.lua index 0e633de..5df3b84 100644 --- a/examples/love2d Threading Example/multi/init.lua +++ b/examples/love2d Threading Example/multi/init.lua @@ -45,7 +45,7 @@ function print(...) end end multi = {} -multi.Version={1,7,2} +multi.Version={1,7,5} multi.stage='stable' multi.__index = multi multi.Mainloop={} @@ -67,6 +67,7 @@ multi.jobUS=2 multi.clock=os.clock multi.time=os.time multi.LinkedPath=multi +mulit.isRunning=false multi.queuefinal=function(self) self:Destroy() if self.Parent.Mainloop[#self.Parent.Mainloop] then @@ -952,12 +953,17 @@ function multi:newCondition(func) end multi.NewCondition=multi.newCondition function multi:mainloop() - for i=1,#self.Tasks do - self.Tasks[i](self) - end - rawset(self,'Start',self.clock()) - while self.Active do - self:Do_Order() + if not mulit.isRunning then + mulit.isRunning=true + for i=1,#self.Tasks do + self.Tasks[i](self) + end + rawset(self,'Start',self.clock()) + while self.Active do + self:Do_Order() + end + else + return "Already Running!" end --print("Did you call multi:Stop()? This method should not be used when using multi:mainloop() unless of course you wanted to stop it! you can restart the multi, by using multi:reboot() and calling multi:mainloop() again or by using multi:uManager()") end diff --git a/examples/love2d Threading Example/multi/intergration/lanesManager.lua b/examples/love2d Threading Example/multi/intergration/lanesManager.lua index 6e61e09..235cbbf 100644 --- a/examples/love2d Threading Example/multi/intergration/lanesManager.lua +++ b/examples/love2d Threading Example/multi/intergration/lanesManager.lua @@ -122,6 +122,8 @@ function multi:newSystemThread(name,func) end print("Intergrated Lanes!") multi.intergration={} -- for module creators +multi.intergration.GLOBAL=GLOBAL +multi.intergration.THREAD=THREAD multi.intergration.lanes={} -- for module creators multi.intergration.lanes.GLOBAL=GLOBAL -- for module creators multi.intergration.lanes.THREAD=THREAD -- for module creators diff --git a/examples/love2d Threading Example/multi/intergration/loveManager.lua b/examples/love2d Threading Example/multi/intergration/loveManager.lua index 1dcb4a1..9fa3986 100644 --- a/examples/love2d Threading Example/multi/intergration/loveManager.lua +++ b/examples/love2d Threading Example/multi/intergration/loveManager.lua @@ -291,6 +291,8 @@ function THREAD.hold(n) multi.OBJ_REF:Resume() end __channels__={} +multi.intergration.GLOBAL=GLOBAL +multi.intergration.THREAD=THREAD updater=multi:newUpdater() updater:OnUpdate(function(self) local data=multi.intergration.love2d.mainChannel:pop()