Skip to content

Commit

Permalink
add response test mode
Browse files Browse the repository at this point in the history
  • Loading branch information
cloudwu committed Jul 30, 2014
1 parent ce5adba commit 40519e9
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 0 deletions.
17 changes: 17 additions & 0 deletions lualib/skynet.lua
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,23 @@ function suspend(co, result, command, param, size)
end
local f = param
local function response(ok, ...)
if ok == "TEST" then
if dead_service[co_address] then
release_watching(co_address)
f = false
return false
else
return true
end
end
if not f then
if f == false then
f = nil
return false
end
error "Can't response more than once"
end

local ret
if not dead_service[co_address] then
if ok then
Expand Down
44 changes: 44 additions & 0 deletions test/testecho.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
local skynet = require "skynet"

local mode = ...

if mode == "slave" then

skynet.start(function()
skynet.dispatch("lua", function(_,_, ...)
skynet.ret(skynet.pack(...))
end)
end)

else

skynet.start(function()
local slave = skynet.newservice(SERVICE_NAME, "slave")
local n = 100000
local start = skynet.now()
print("call salve", n, "times in queue")
for i=1,n do
skynet.call(slave, "lua")
end
print("qps = ", n/ (skynet.now() - start) * 100)

start = skynet.now()

local worker = 10
local task = n/worker
print("call salve", n, "times in parallel, worker = ", worker)

for i=1,worker do
skynet.fork(function()
for i=1,task do
skynet.call(slave, "lua")
end
worker = worker -1
if worker == 0 then
print("qps = ", n/ (skynet.now() - start) * 100)
end
end)
end
end)

end

0 comments on commit 40519e9

Please sign in to comment.