Skip to content
Snippets Groups Projects
Commit 2ef6dd59 authored by Mergen Imeev's avatar Mergen Imeev Committed by Alexander Turenko
Browse files

config: introduce fiber applier

This patch introduces the fiber applier. This applier is used to set
fiber options.

Part of #8789

NO_DOC=will be added later
NO_CHANGELOG=will be added later
parent e4be006c
No related branches found
No related tags found
No related merge requests found
......@@ -40,6 +40,7 @@ lua_source(lua_sources lua/merger.lua merger_lua)
lua_source(lua_sources lua/config/applier/box_cfg.lua config_applier_box_cfg_lua)
lua_source(lua_sources lua/config/applier/console.lua config_applier_console_lua)
lua_source(lua_sources lua/config/applier/credentials.lua config_applier_credentials_lua)
lua_source(lua_sources lua/config/applier/fiber.lua config_applier_fiber_lua)
lua_source(lua_sources lua/config/applier/mkdir.lua config_applier_mkdir_lua)
lua_source(lua_sources lua/config/cluster_config.lua config_cluster_config_lua)
lua_source(lua_sources lua/config/configdata.lua config_configdata_lua)
......
local fiber = require('fiber')
local log = require('internal.config.utils.log')
local function apply(config)
local configdata = config._configdata
local slice = configdata:get('fiber.slice', {use_default = true})
assert(slice ~= nil)
log.verbose('fiber.apply: fiber.set_max_slice: %s', slice)
fiber.set_max_slice(slice)
local top = configdata:get('fiber.top', {use_default = true})
assert(type(top) == 'table')
assert(type(top.enabled) == 'boolean')
if top.enabled then
log.verbose('fiber.apply: enable fiber top')
fiber.top_enable()
else
log.verbose('fiber.apply: disable fiber top')
fiber.top_disable()
end
end
return {
name = 'fiber',
apply = apply,
}
......@@ -138,6 +138,7 @@ extern char session_lua[],
config_applier_box_cfg_lua[],
config_applier_console_lua[],
config_applier_credentials_lua[],
config_applier_fiber_lua[],
config_applier_mkdir_lua[],
config_cluster_config_lua[],
config_configdata_lua[],
......@@ -332,6 +333,10 @@ static const char *lua_sources[] = {
"internal.config.applier.credentials",
config_applier_credentials_lua,
"config/applier/fiber",
"internal.config.applier.fiber",
config_applier_fiber_lua,
"config/applier/mkdir",
"internal.config.applier.mkdir",
config_applier_mkdir_lua,
......
......@@ -19,6 +19,11 @@ local appliers_script = [[
memtx = {
memory = 100000000,
},
fiber = {
top = {
enabled = true,
},
},
groups = {
['group-001'] = {
replicasets = {
......@@ -45,6 +50,8 @@ local appliers_script = [[
credentials.apply(config)
local console = require('internal.config.applier.console')
console.apply(config)
local fiber = require('internal.config.applier.fiber')
fiber.apply(config)
%s
os.exit(0)
]]
......@@ -121,3 +128,18 @@ g.test_applier_console = function()
t.assert_equals(res.exit_code, 0)
t.assert_equals(res.stdout, 'Tarantool (Lua console)')
end
g.test_applier_fiber = function()
local dir = treegen.prepare_directory(g, {}, {})
local injection = [[
fiber = require('fiber')
print(fiber.top() ~= nil)
]]
treegen.write_script(dir, 'main.lua', appliers_script:format(injection))
local env = {}
local opts = {nojson = true, stderr = false}
local res = justrun.tarantool(dir, env, {'main.lua'}, opts)
t.assert_equals(res.exit_code, 0)
t.assert_equals(res.stdout, 'true')
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment