mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-25 12:43:09 +00:00
change skynet.timeout api
This commit is contained in:
@@ -53,25 +53,20 @@ function suspend(co, result, command, param, size)
|
|||||||
dispatch_wakeup()
|
dispatch_wakeup()
|
||||||
end
|
end
|
||||||
|
|
||||||
function skynet.timeout(ti, func, ...)
|
function skynet.timeout(ti, func)
|
||||||
local session = c.command("TIMEOUT",tostring(ti))
|
local session = c.command("TIMEOUT",tostring(ti))
|
||||||
assert(session)
|
assert(session)
|
||||||
session = tonumber(session)
|
session = tonumber(session)
|
||||||
local co
|
local co = coroutine.create(func)
|
||||||
if select("#",...) == 0 then
|
|
||||||
co = coroutine.create(func)
|
|
||||||
else
|
|
||||||
local args = { ... }
|
|
||||||
co = coroutine.create(function()
|
|
||||||
func(unpack(args))
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
assert(session_id_coroutine[session] == nil)
|
assert(session_id_coroutine[session] == nil)
|
||||||
session_id_coroutine[session] = co
|
session_id_coroutine[session] = co
|
||||||
end
|
end
|
||||||
|
|
||||||
function skynet.fork(func,...)
|
function skynet.fork(func,...)
|
||||||
skynet.timeout("0", func, ...)
|
local args = { ... }
|
||||||
|
skynet.timeout("0", function()
|
||||||
|
func(unpack(args))
|
||||||
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
function skynet.sleep(ti)
|
function skynet.sleep(ti)
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ end
|
|||||||
|
|
||||||
skynet.start(function()
|
skynet.start(function()
|
||||||
skynet.fork(wakeup, coroutine.running())
|
skynet.fork(wakeup, coroutine.running())
|
||||||
skynet.timeout(300, timeout, "Hello World")
|
skynet.timeout(300, function() timeout "Hello World" end)
|
||||||
for i = 1, 10 do
|
for i = 1, 10 do
|
||||||
print(i, skynet.now())
|
print(i, skynet.now())
|
||||||
print(skynet.sleep(100))
|
print(skynet.sleep(100))
|
||||||
|
|||||||
Reference in New Issue
Block a user