updated files

This commit is contained in:
Ryan Ward 2020-03-06 15:41:53 -05:00
parent 2a55b044ef
commit 5da0be08af
5 changed files with 51 additions and 24 deletions

View File

@ -4,7 +4,7 @@ Table of contents
---
# Update 14.2.0 - Destroy!
# Update 14.2.0 - Ending it all!
Full Update Showcase
---
```lua

View File

@ -964,6 +964,12 @@ function multi:scheduleJob(time,func)
end
-- Threading stuff
local initT = false
local threadCount = 0
local threadid = 0
thread.__threads = {}
local threads = thread.__threads
local Gref = _G
multi.GlobalVariables={}
local dFunc = function() return true end
local dRef = {nil,nil,nil}
@ -971,10 +977,20 @@ thread.requests = {}
function thread.request(t,cmd,...)
thread.requests[t.thread] = {cmd,{...}}
end
function thread.getRunningThread()
local t = coroutine.running()
if t then
for i,v in pairs(threads) do
if t==v.thread then
return v
end
end
end
end
function thread._Requests()
local t = thread.requests[coroutine.running()]
thread.requests[coroutine.running()] = nil
if t then
thread.requests[coroutine.running()] = nil
local cmd,args = t[1],t[2]
thread[cmd](unpack(args))
end
@ -984,6 +1000,7 @@ function thread.exec(func)
end
function thread.sleep(n)
thread._Requests()
thread.getRunningThread().lastSleep = clock()
dRef[1] = "_sleep_"
dRef[2] = n or 0
return coroutine.yield(dRef)
@ -1150,17 +1167,6 @@ function thread.testFor(name,_val,sym)
end)
return thread.get(name)
end
function multi.print(...)
if multi.defaultSettings.print then
print(...)
end
end
local initT = false
local threadCount = 0
local threadid = 0
thread.__threads = {}
local threads = thread.__threads
local Gref = _G
function multi:newThread(name,func,...)
multi.OnLoad:Fire()
local func = func or name
@ -1468,6 +1474,8 @@ function multi:newService(func) -- Priority managed threads
elseif math.abs(n)==2 then
ap = math.abs(p-1)*32+1
task = thread.skip
elseif math.abs(n)==3 then
-- This is a time based pirority manager. Things that take long to run get
end
return c
end
@ -2261,6 +2269,12 @@ else
thread.__CORES=tonumber(io.popen("nproc --all"):read("*n"))
end
function multi.print(...)
if multi.defaultSettings.print then
print(...)
end
end
multi.GetType=multi.getType
multi.IsPaused=multi.isPaused
multi.IsActive=multi.isActive

View File

@ -84,16 +84,17 @@ function multi:newSystemThread(name, func, ...)
c.priority = THREAD.Priority_Normal
local args = {...}
multi:newThread(function()
print("I am here!")
c.thread = lanes.gen(table.concat(c.loadString,","),
{
globals={
THREAD_NAME=name,
THREAD_ID=count,
THREAD = THREAD,
GLOBAL = GLOBAL,
_Console = __ConsoleLinda
},priority=c.priority}, func)(unpack(args))
globals={ -- Set up some globals
THREAD_NAME=name,
THREAD_ID=count,
THREAD = THREAD,
GLOBAL = GLOBAL,
_Console = __ConsoleLinda
},
priority=c.priority
},func)(unpack(args))
thread.kill()
end)
count = count + 1

BIN
test.dat

Binary file not shown.

View File

@ -1,7 +1,19 @@
package.path="?.lua;?/init.lua;?.lua;?/?/init.lua;"..package.path
multi,thread = require("multi"):init()
t = multi:newThread(function()
print("Hello!")
os.exit()
local GLOBAL,THREAD = require("multi.integration.lanesManager"):init()
func = THREAD:newFunction(function(test)
print(test)
THREAD.sleep(1)
return "Hello World!"
end)
func("Did it work").connect(function(...)
print(...)
--os.exit()
end)
local serv = multi:newService(function(self,data)
local name = thread.getRunningThread().Name
print(name)
end)
serv.Start()
serv.SetPriority(multi.Priority_Low)
multi:lightloop()