service_cell.lua
489 Bytes
local skynet = require "skynet"
local service_name = (...)
local init = {}
function init.init(code, ...)
local start_func
skynet.start = function(f)
start_func = f
end
skynet.dispatch("lua", function() error("No dispatch function") end)
local mainfunc = assert(load(code, service_name))
assert(skynet.pcall(mainfunc,...))
if start_func then
start_func()
end
skynet.ret()
end
skynet.start(function()
skynet.dispatch("lua", function(_,_,cmd,...)
init[cmd](...)
end)
end)