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