diff options
author | kwolekr <mirrorisim@gmail.com> | 2013-02-14 20:36:58 -0500 |
---|---|---|
committer | kwolekr <mirrorisim@gmail.com> | 2013-02-25 22:59:17 -0500 |
commit | 76217939e05bdd8d06fa7113902a74b02deeb915 (patch) | |
tree | 21922c097e14c070b87442fa8d8d9ecc97ca250d /src/emerge.cpp | |
parent | 206ec36c8e50a017636a70345b95f79feffb2446 (diff) | |
download | hax-minetest-server-76217939e05bdd8d06fa7113902a74b02deeb915.tar.gz hax-minetest-server-76217939e05bdd8d06fa7113902a74b02deeb915.zip |
Add emerge queue limit configuration
Diffstat (limited to '')
-rw-r--r-- | src/emerge.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/emerge.cpp b/src/emerge.cpp index e2b9e5a6c..b785c8688 100644 --- a/src/emerge.cpp +++ b/src/emerge.cpp @@ -49,6 +49,10 @@ EmergeManager::EmergeManager(IGameDef *gamedef, BiomeDefManager *bdef) { this->params = NULL; this->mapgen = NULL; + qlimit_total = g_settings->getU16("emergequeue_limit_total"); + qlimit_diskonly = g_settings->getU16("emergequeue_limit_diskonly"); + qlimit_generate = g_settings->getU16("emergequeue_limit_generate"); + queuemutex.Init(); emergethread = new EmergeThread((Server *)gamedef); } @@ -98,23 +102,16 @@ bool EmergeManager::enqueueBlockEmerge(u16 peer_id, v3s16 p, bool allow_generate if (allow_generate) flags |= BLOCK_EMERGE_ALLOWGEN; - //TODO: - // add logic to select which emergethread to add it to - // - one with the least queue contents? - // - if a queue is too full, move onto another one - // - use the peer id sometime - { JMutexAutoLock queuelock(queuemutex); count = blocks_enqueued.size(); - u16 queuelimit_total = 256; - if (count >= queuelimit_total) + if (count >= qlimit_total) return false; count = peer_queue_count[peer_id]; - u16 queuelimit_peer = allow_generate ? 1 : 5; - if (count >= queuelimit_peer) + u16 qlimit_peer = allow_generate ? qlimit_generate : qlimit_diskonly; + if (count >= qlimit_peer) return false; iter = blocks_enqueued.find(p); |