summaryrefslogtreecommitdiff
path: root/src/serverenvironment.cpp
diff options
context:
space:
mode:
authorLoïc Blot <nerzhul@users.noreply.github.com>2017-06-11 13:58:43 +0200
committerGitHub <noreply@github.com>2017-06-11 13:58:43 +0200
commit65819f3b9f8229666a30b91ef2d289ebc6085097 (patch)
tree722ba29a49ea1707c1db2633b2e84c5c7ebfe2eb /src/serverenvironment.cpp
parentff73c7a5da6ab8ac0bb678ebf25b83e805397029 (diff)
downloadminetest-65819f3b9f8229666a30b91ef2d289ebc6085097.tar.gz
minetest-65819f3b9f8229666a30b91ef2d289ebc6085097.tar.bz2
minetest-65819f3b9f8229666a30b91ef2d289ebc6085097.zip
Use thread_local instead from some static settings (#5955)
thread_local permits to limit variable lifetime to thread duration. Use it on each setting place which uses static to cache variable result only for thread lifetime. This permits to keep the same performance level & reconfigure server from MT gui in those various variables places. Add thread_local to undersampling calculation too.
Diffstat (limited to 'src/serverenvironment.cpp')
-rw-r--r--src/serverenvironment.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/serverenvironment.cpp b/src/serverenvironment.cpp
index 7be958920..161b24fd4 100644
--- a/src/serverenvironment.cpp
+++ b/src/serverenvironment.cpp
@@ -1169,7 +1169,8 @@ void ServerEnvironment::step(float dtime)
// Update this one
// NOTE: This is kind of funny on a singleplayer game, but doesn't
// really matter that much.
- static const float server_step = g_settings->getFloat("dedicated_server_step");
+ static thread_local const float server_step =
+ g_settings->getFloat("dedicated_server_step");
m_recommended_send_interval = server_step;
/*
@@ -1230,7 +1231,8 @@ void ServerEnvironment::step(float dtime)
/*
Update list of active blocks, collecting changes
*/
- static const s16 active_block_range = g_settings->getS16("active_block_range");
+ static thread_local const s16 active_block_range =
+ g_settings->getS16("active_block_range");
std::set<v3s16> blocks_removed;
std::set<v3s16> blocks_added;
m_active_blocks.update(players_blockpos, active_block_range,