change skynet.timeout api

This commit is contained in:
云风
2012-08-28 13:11:03 +08:00
parent f425d10c8b
commit 6e1fffac9a
2 changed files with 7 additions and 12 deletions

View File

@@ -53,25 +53,20 @@ function suspend(co, result, command, param, size)
dispatch_wakeup()
end
function skynet.timeout(ti, func, ...)
function skynet.timeout(ti, func)
local session = c.command("TIMEOUT",tostring(ti))
assert(session)
session = tonumber(session)
local co
if select("#",...) == 0 then
co = coroutine.create(func)
else
local args = { ... }
co = coroutine.create(function()
func(unpack(args))
end)
end
local co = coroutine.create(func)
assert(session_id_coroutine[session] == nil)
session_id_coroutine[session] = co
end
function skynet.fork(func,...)
skynet.timeout("0", func, ...)
local args = { ... }
skynet.timeout("0", function()
func(unpack(args))
end)
end
function skynet.sleep(ti)

View File

@@ -16,7 +16,7 @@ end
skynet.start(function()
skynet.fork(wakeup, coroutine.running())
skynet.timeout(300, timeout, "Hello World")
skynet.timeout(300, function() timeout "Hello World" end)
for i = 1, 10 do
print(i, skynet.now())
print(skynet.sleep(100))