Add skynet.coroutine module

This commit is contained in:
Cloud Wu
2015-12-17 16:25:24 +08:00
parent 41252e8c21
commit 872491e968
3 changed files with 145 additions and 11 deletions

24
test/testcoroutine.lua Normal file
View File

@@ -0,0 +1,24 @@
local skynet = require "skynet"
-- You should use skynet.coroutine instead of origin coroutine in skynet
local coroutine = require "skynet.coroutine"
local function test(n)
print ("begin", coroutine.isskynetcoroutine())
for i=1,n do
skynet.sleep(100)
coroutine.yield(i)
end
print "end"
return false
end
skynet.start(function()
print("Is the main thead a skynet coroutine ?", coroutine.isskynetcoroutine(coroutine.running())) -- always false
print(coroutine.resume(coroutine.running())) -- always return false
local f = coroutine.wrap(test)
repeat
local n = f(5)
print(n)
until not n
skynet.exit()
end)