diff options
author | Loïc Blot <nerzhul@users.noreply.github.com> | 2017-06-11 13:58:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-11 13:58:43 +0200 |
commit | 65819f3b9f8229666a30b91ef2d289ebc6085097 (patch) | |
tree | 722ba29a49ea1707c1db2633b2e84c5c7ebfe2eb /src/serverenvironment.cpp | |
parent | ff73c7a5da6ab8ac0bb678ebf25b83e805397029 (diff) | |
download | minetest-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.cpp | 6 |
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, |