mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-22 02:53:09 +00:00
sharedata support filename string
This commit is contained in:
@@ -608,11 +608,15 @@ local function init_all()
|
||||
end
|
||||
end
|
||||
|
||||
local function ret(f, ...)
|
||||
f()
|
||||
return ...
|
||||
end
|
||||
|
||||
local function init_template(start)
|
||||
init_all()
|
||||
init_func = {}
|
||||
start()
|
||||
init_all()
|
||||
return ret(init_all, start())
|
||||
end
|
||||
|
||||
function skynet.pcall(start)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
local skynet = require "skynet"
|
||||
local sharedata = require "sharedata.corelib"
|
||||
local table = table
|
||||
local cache = require "skynet.codecache"
|
||||
cache.mode "OFF" -- turn off codecache, because CMD.new may load data file
|
||||
|
||||
local NORET = {}
|
||||
local pool = {}
|
||||
@@ -43,9 +45,17 @@ function CMD.new(name, t)
|
||||
value = t
|
||||
elseif dt == "string" then
|
||||
value = setmetatable({}, env_mt)
|
||||
local f = load(t, "=" .. name, "t", value)
|
||||
assert(skynet.pcall(f))
|
||||
local f
|
||||
if t:sub(1,1) == "@" then
|
||||
f = assert(loadfile(t:sub(2),"bt",value))
|
||||
else
|
||||
f = assert(load(t, "=" .. name, "bt", value))
|
||||
end
|
||||
local _, ret = assert(skynet.pcall(f))
|
||||
setmetatable(value, nil)
|
||||
if type(ret) == "table" then
|
||||
value = ret
|
||||
end
|
||||
elseif dt == "nil" then
|
||||
value = {}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user