Working on 13.1.0

This commit is contained in:
Ryan Ward 2019-06-29 01:01:48 -04:00
parent afee0ace94
commit 11cfb390bb
3 changed files with 40 additions and 5 deletions

View File

@ -1,5 +1,15 @@
#Changes
[TOC]
Update 13.1.0 Bug fixes and some new features (Will upgrade version to 14.0.0 if significant changes are made)
-------------
Added:
- Connections:Lock() -- Prevents a connection object form being fired
- Connections:Unlock() -- Removes the restriction imposed by conn:Lock()
Fixed:
- Minor bug with multi:newThread() in how names and functions were managed
-
Update 13.0.0 Added some documentation, and some new features too check it out!
-------------
**Quick note** on the 13.0.0 update:

View File

@ -24,8 +24,8 @@ SOFTWARE.
local bin = pcall(require,"bin")
local multi = {}
local clock = os.clock
multi.Version = "13.0.0"
multi._VERSION = "13.0.0"
multi.Version = "13.1.0"
multi._VERSION = "13.1.0"
multi.stage = "stable"
multi.__index = multi
multi.Name = "multi.root"
@ -740,6 +740,7 @@ function multi:newConnection(protect,func)
local c={}
c.callback = func
c.Parent=self
c.lock = false
setmetatable(c,{__call=function(self,...)
local t = ...
if type(t)=="table" and t.Type ~= nil then
@ -788,8 +789,15 @@ function multi:newConnection(protect,func)
return self.connections[name] or self
end
end
function c:Lock()
c.lock = true
end
function c:Unlock()
c.lock = false
end
function c:Fire(...)
local ret={}
if self.lock then return end
for i=#self.func,1,-1 do
if self.protect then
local temp={pcall(self.func[i][1],...)}
@ -822,6 +830,7 @@ function multi:newConnection(protect,func)
ID=self.ID,
Parent=self,
Fire=function(self,...)
if self.Parent.lock then return end
--~ if self.Parent.FC>0 then
--~ for i=1,#self.Parent.FC do
--~ self.Parent.FC[i]:Fire(...)
@ -1497,9 +1506,8 @@ multi:setDomainName("Globals")
local initT = false
local threadCount = 0
function multi:newThread(name,func)
local func = func
local func = func or name
if type(name) == "function" then
func = name
name = "Thread#"..threadCount
end
local c={}

View File

@ -2,8 +2,25 @@ package.path="?/init.lua;?.lua;"..package.path
multi = require("multi")
local GLOBAL,THREAD = require("multi.integration.lanesManager").init()
nGLOBAL = require("multi.integration.networkManager").init()
function table.print(tbl, indent)
if type(tbl)~="table" then return end
if not indent then indent = 0 end
for k, v in pairs(tbl) do
formatting = string.rep(' ', indent) .. k .. ': '
if type(v) == 'table' then
print(formatting)
table.print(v, indent+1)
else
print(formatting .. tostring(v))
end
end
end
multi:newThread(function()
error("Did it work?")
while true do
thread.sleep(1)
print("-----")
multi:getTasksDetails("t")
end
end)
multi.OnError(function(...)
print(...)