Skip to content

rayaman/multi

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Multi Version: 15.3.1 A world of Connections

Key Changes

  • SystemThreadedConnections
  • Restructured the directory structure of the repo (Allows for keeping multi as a submodule and being able to require it as is)
  • Bug fixes

Found an issue? Please submit it and someone will look into it!

My multitasking library for lua. It is a pure lua binding, with exceptions of the integrations.


Progress is being made in v16.0.0


INSTALLING

Link to optional dependencies:

To install copy the multi folder into your environment and you are good to go
If you want to use the system threads, then you'll need to install lanes or love2d game engine!

luarocks install multi

Discord

Have a question or need realtime assistance? Feel free to join the discord!
https://discord.gg/U8UspuA

Planned features/TODO

  • Create test suite (In progress, mostly done)
  • Network Parallelism rework

Usage: Check out the documentation for more info

local multi, thread = require("multi"):init()
GLOBAL, THREAD = require("multi.integration.threading"):init()

multi:newSystemThread("System Thread",function()
	while true do
		THREAD.sleep(.1)
		io.write(" World")
		THREAD.kill()
	end
end)

multi:newThread("Coroutine Based Thread",function()
	while true do
		io.write("Hello")
		thread.sleep(.1)
		thread.kill()
	end
end)

multi:newTLoop(function(loop)
	print("!")
	loop:Destroy()
	os.exit()
end,.3)

multi:mainloop()

--[[
while true do
	multi:uManager()
end
]]

Known Bugs/Issues

Check the Issues tab for issues