add trace api to skynet.lua

This commit is contained in:
云风
2012-09-15 15:19:57 +08:00
parent 9a7ed2235f
commit 0f7ac5dc0a
2 changed files with 25 additions and 1 deletions

View File

@@ -129,7 +129,7 @@ _callback(lua_State *L) {
lua_createtable(L,0,1);
lua_pushcfunction(L, _delete_stat);
lua_setfield(L,-1,"__gc");
lua_setfield(L,-2,"__gc");
lua_setmetatable(L, -2);
lua_rawsetp(L, LUA_REGISTRYINDEX, _stat);

View File

@@ -483,8 +483,11 @@ local function init_template(start)
init_all()
end
local trace_handle
function skynet.start(start_func)
c.callback(dispatch_message)
trace_handle = assert(c.stat "trace")
skynet.timeout(0, function()
init_template(start_func)
skynet.send(".launcher","text", "")
@@ -495,10 +498,31 @@ function skynet.filter(f ,start_func)
c.callback(function(...)
dispatch_message(f(...))
end)
trace_handle = assert(c.stat "trace")
skynet.timeout(0, function()
init_template(start_func)
skynet.send(".launcher","text", "")
end)
end
function skynet.trace_new()
return c.trace_new(trace_handle)
end
function skynet.trace_delete(info)
return c.trace_delete(info)
end
function skynet.trace_switch(session)
return c.trace_switch(trace_handle, session)
end
function skynet.trace_yield()
return c.trace_yield(trace_handle)
end
function skynet.trace_register(session)
return c.trace_register(trace_handle, session)
end
return skynet