aboutsummaryrefslogtreecommitdiff
path: root/init.lua
blob: 4de726a230ffbe85c359edfe17b8c64a8b048e99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
lua_async = {
	poll_functions = {},
}

if rawget(_G, "require") then
	lua_async.socket = require("socket")
end

function lua_async.clock()
	return lua_async.socket and lua_async.socket.gettime() or os.clock()
end

function lua_async.step(dtime)
	-- timers phase
	lua_async.timeouts.step(dtime)
	lua_async.intervals.step(dtime)

	-- pending callbacks phase is obsolete

	-- idle & prepare phase are obsolete

	-- poll phase
	for func in pairs(lua_async.poll_functions) do
		func()
	end

	-- check phase
	lua_async.immediates.step(dtime)

	-- close phase is obsolete
end

return function(path)
	for _, f in ipairs {
		"timeouts",
		"intervals",
		"immediates",
		"promises",
		"async_await",
		"util",
		"limiting",
		"events",
	} do
		dofile(path .. "/" .. f .. ".lua")
	end
end