mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-25 04:33:05 +00:00
cluster trace
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user