Skip to content

rayaman/multi

Repository files navigation

Multi Version: 16.0.1 - Bug fix

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.1.0


INSTALLING

Link to optional dependencies:

  • lanes luarocks install lanes

  • chronos luarocks install chronos

  • love2d

    When using love2d add multi:uManager() or any processor to love.update()

    function love.update(dt)
     	multi:uManager()
    end

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

You can run tests in 2 ways:

lua tests/runtests.lua (Runs all tests, attempts to use lanes)
love tests (Runs all tests in love2d env)
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

About

My multitasking library for lua

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages