V15.3.0 #46

Merged
rayaman merged 85 commits from v15.3.0 into network_parallelism_test_branch 2022-06-11 23:41:07 -04:00
4 changed files with 51 additions and 12 deletions
Showing only changes of commit b572bf218d - Show all commits

View File

@ -1137,7 +1137,6 @@ end
function thread.pushStatus(...)
local t = thread.getRunningThread()
print("Pushing",t)
t.statusconnector:Fire(...)
end
@ -1433,6 +1432,7 @@ function multi:attachScheduler()
local cmds = {-- ipart: t_hold, t_sleep, t_holdF, t_skip, t_holdW, t_yield, t_none <-- Order
function(th,arg1,arg2,arg3)
--print("hold",arg1,arg2,arg3)
--print(_,ret,r1,r2,r3,r4,r5)
th.func = arg1
th.task = t_hold
th.interval = arg3 or 0
@ -1478,8 +1478,8 @@ function multi:attachScheduler()
cmds[r1](ref,r2,r3,r4,r5)
r1=nil r2=nil r3=nil r4=nil r5=nil
end,
["normal"] = function(thd,ref) end, -- Not sure if I will handle this
["running"] = function(thd,ref) end,
["normal"] = function(thd,ref) print("Normal Status") io.read() end, -- Not sure if I will handle this
["running"] = function(thd,ref) print("Running Status") io.read() end,
["dead"] = function(thd,ref,task,i)
if _ then
print("Death")

View File

@ -0,0 +1,42 @@
package = "multi"
version = "15.2-0"
source = {
url = "git://github.com/rayaman/multi.git",
tag = "v15.2.0",
}
description = {
summary = "Lua Multi tasking library",
detailed = [[
This library contains many methods for multi tasking. Features non coroutine based multi-tasking, coroutine based multi-tasking, and system threading (Requires use of an integration).
Check github for documentation.
]],
homepage = "https://github.com/rayaman/multi",
license = "MIT"
}
dependencies = {
"lua >= 5.1",
"lanes",
}
build = {
type = "builtin",
modules = {
["multi"] = "multi/init.lua",
["multi.compat.love2d"] = "multi/compat/love2d.lua",
["multi.compat.lovr"] = "multi/compat/lovr.lua",
["multi.integration.lanesManager"] = "multi/integration/lanesManager/init.lua",
["multi.integration.lanesManager.extensions"] = "multi/integration/lanesManager/extensions.lua",
["multi.integration.lanesManager.threads"] = "multi/integration/lanesManager/threads.lua",
["multi.integration.loveManager"] = "multi/integration/loveManager/init.lua",
["multi.integration.loveManager.extensions"] = "multi/integration/loveManager/extensions.lua",
["multi.integration.loveManager.threads"] = "multi/integration/loveManager/threads.lua",
--["multi.integration.lovrManager"] = "multi/integration/lovrManager/init.lua",
--["multi.integration.lovrManager.extensions"] = "multi/integration/lovrManager/extensions.lua",
--["multi.integration.lovrManager.threads"] = "multi/integration/lovrManager/threads.lua",
["multi.integration.pesudoManager"] = "multi/integration/pesudoManager/init.lua",
["multi.integration.pesudoManager.extensions"] = "multi/integration/pesudoManager/extensions.lua",
["multi.integration.pesudoManager.threads"] = "multi/integration/pesudoManager/threads.lua",
["multi.integration.luvitManager"] = "multi/integration/luvitManager.lua",
["multi.integration.threading"] = "multi/integration/threading.lua",
--["multi.integration.networkManager"] = "multi/integration/networkManager.lua",
}
}

View File

@ -1,9 +1,7 @@
function connectionThreadTests(multi,thread)
print("Starting Connection and Thread tests!")
print("Current Thread:",thread.getRunningThread())
func = thread:newFunction(function(count)
print("Starting Status test: ",count)
print("Current Thread:",thread.getRunningThread().thread)
local a = 0
while true do
a = a + 1
@ -33,12 +31,7 @@ function connectionThreadTests(multi,thread)
ret.OnReturn(function()
print("Done")
end)
local err, timeout = thread.hold(ret.OnReturn + ret2.OnReturn + ret3.OnReturn,{sleep=3})
print(err,timeout)
for i,v in pairs(err) do
print(i,v)
end
os.exit()
local err, timeout = thread.hold(ret.OnReturn + ret2.OnReturn + ret3.OnReturn)
if s1 == 100 and s2 == 100 and s3 == 100 then
print("Threads: Ok")
else

View File

@ -1,4 +1,6 @@
package.path="./?.lua;../?.lua;../?/init.lua;../?.lua;../?/?/init.lua;"..package.path
package.path="multi/?.lua;multi/?/init.lua;multi/?.lua;multi/?/?/init.lua;"..package.path
require("lldebugger").start()
--[[
This file runs all tests.
Format:
@ -15,6 +17,8 @@ package.path="./?.lua;../?.lua;../?/init.lua;../?.lua;../?/?/init.lua;"..package
The expected and actual should "match" (Might be impossible when playing with threads)
This will be pushed directly to the master as tests start existing.
]]
os.execute("cd multi")
os.execute("pwd")
local multi, thread = require("multi"):init{priority=true}
local good = false
runTest = thread:newFunction(function()