cluster trace

This commit is contained in:
Cloud Wu
2018-05-28 16:39:04 +08:00
parent a41a5fadd2
commit 9035fbe96b
5 changed files with 94 additions and 8 deletions

View File

@@ -285,9 +285,13 @@ function suspend(co, result, command, param, param2)
session_coroutine_id[co] = nil
return suspend(co, coroutine_resume(co))
elseif command == "TRACE" then
session_coroutine_tracetag[co] = param
c.trace(param, "trace")
return suspend(co, coroutine_resume(co))
if param then
session_coroutine_tracetag[co] = param
c.trace(param, "trace on")
else
param = session_coroutine_tracetag[co]
end
return suspend(co, coroutine_resume(co, param))
elseif command == nil then
-- debug trace
return
@@ -351,6 +355,10 @@ function skynet.trace()
coroutine_yield("TRACE", string.format(":%08x-%d",skynet.self(), traceid))
end
function skynet.tracetag()
return coroutine_yield "TRACE"
end
local starttime
function skynet.starttime()
@@ -448,6 +456,16 @@ function skynet.rawcall(addr, typename, msg, sz)
return yield_call(addr, session)
end
function skynet.tracecall(tag, addr, typename, msg, sz)
c.trace(tag, "trace begin")
c.send(addr, skynet.PTYPE_TRACE, 0, tag)
local p = proto[typename]
local session = assert(c.send(addr, p.id , nil , msg, sz), "call to invalid address")
local msg, sz = yield_call(addr, session)
c.trace(tag, "trace end")
return msg, sz
end
function skynet.ret(msg, sz)
msg = msg or ""
return coroutine_yield("RETURN", msg, sz)
@@ -624,6 +642,7 @@ function skynet.harbor(addr)
end
skynet.error = c.error
skynet.tracelog = c.trace
----- register protocol
do