V16.0.1 #68

Merged
rayaman merged 2 commits from v16.0.1 into master 2024-03-24 23:29:43 -04:00
4 changed files with 76 additions and 10 deletions

View File

@ -1,11 +1,4 @@
# Multi Version: 16.0.0 - Connecting the dots
**Key Changes**
- Expanded connection logic
- New integration priorityManager
- Tests for threads
- Consistent behavior between the threading integrations
- Improved love2d threading
- Bug fixes
# Multi Version: 16.0.1 - Bug fix
Found an issue? Please [submit it](https://github.com/rayaman/multi/issues) and someone will look into it!

View File

@ -1,6 +1,7 @@
# Changelog
Table of contents
---
[Update 16.0.1 - Bug fix](#update-1531---bug-fix)</br>
[Update 16.0.0 - Connecting the dots](#update-1600---getting-the-priorities-straight)</br>
[Update 15.3.1 - Bug fix](#update-1531---bug-fix)</br>
[Update 15.3.0 - A world of connections](#update-1530---a-world-of-connections)</br>
@ -58,6 +59,35 @@ Table of contents
[Update: EventManager 1.0.0 - Error checking](#update-eventmanager-100---error-checking)</br>
[Version: EventManager 0.0.1 - In The Beginning things were very different](#version-eventmanager-001---in-the-beginning-things-were-very-different)
# Update 16.0.1 - Bug fix
Fixed
---
- thread.pushStatus() wasn't properly working when forwarding events from THREAD.pushStatus OnStatus connection. This bug also caused stack overflow errors with the following code
```lua
func = thread:newFunction(function()
for i=1,10 do
thread.sleep(1)
thread.pushStatus(i)
end
end)
func2 = thread:newFunction(function()
local ref = func()
ref.OnStatus(function(num)
-- do stuff with this data
thread.pushStatus(num*2) -- Technically this is not ran within a thread. This is ran outside of a thread inside the thread handler.
end)
end)
local handler = func2()
handler.OnStatus(function(num)
print(num)
end)
multi:mainloop()
```
# Update 16.0.0 - Getting the priorities straight
## Added New Integration: **priorityManager**

View File

@ -86,7 +86,7 @@ function multi.getTypes()
return types
end
multi.Version = "16.0.0"
multi.Version = "16.0.1"
multi.Name = "root"
multi.NIL = {Type="NIL"}
local NIL = multi.NIL
@ -447,6 +447,7 @@ function multi:newConnection(protect,func,kill)
func = function(...)
__CurrentConnectionThread = th
fref(...)
__CurrentConnectionThread = nil
end
end
table.insert(fast, func)
@ -1435,7 +1436,7 @@ local function cleanReturns(...)
end
function thread.pushStatus(...)
local t = thread.getRunningThread() or __CurrentConnectionThread
local t = __CurrentConnectionThread or thread.getRunningThread()
t.statusconnector:Fire(...)
end

View File

@ -0,0 +1,42 @@
package = "multi"
version = "16.0-1"
source = {
url = "git://github.com/rayaman/multi.git",
tag = "v16.0.1",
}
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"
}
build = {
type = "builtin",
modules = {
["multi"] = "init.lua",
["multi.integration.lanesManager"] = "integration/lanesManager/init.lua",
["multi.integration.lanesManager.extensions"] = "integration/lanesManager/extensions.lua",
["multi.integration.lanesManager.threads"] = "integration/lanesManager/threads.lua",
["multi.integration.loveManager"] = "integration/loveManager/init.lua",
["multi.integration.loveManager.extensions"] = "integration/loveManager/extensions.lua",
["multi.integration.loveManager.threads"] = "integration/loveManager/threads.lua",
["multi.integration.loveManager.utils"] = "integration/loveManager/threads.lua",
--["multi.integration.lovrManager"] = "integration/lovrManager/init.lua",
--["multi.integration.lovrManager.extensions"] = "integration/lovrManager/extensions.lua",
--["multi.integration.lovrManager.threads"] = "integration/lovrManager/threads.lua",
["multi.integration.pseudoManager"] = "integration/pseudoManager/init.lua",
["multi.integration.pseudoManager.extensions"] = "integration/pseudoManager/extensions.lua",
["multi.integration.pseudoManager.threads"] = "integration/pseudoManager/threads.lua",
["multi.integration.luvitManager"] = "integration/luvitManager.lua",
["multi.integration.threading"] = "integration/threading.lua",
["multi.integration.sharedExtensions"] = "integration/sharedExtensions/init.lua",
["multi.integration.priorityManager"] = "integration/priorityManager/init.lua",
--["multi.integration.networkManager"] = "integration/networkManager.lua",
}
}