@@ -165,20 +165,17 @@ EmergeManager::EmergeManager(Server *server)
165
165
if (nthreads < 1 )
166
166
nthreads = 1 ;
167
167
168
- m_qlimit_total = g_settings->getU16 (" emergequeue_limit_total" );
168
+ m_qlimit_total = g_settings->getU32 (" emergequeue_limit_total" );
169
169
// FIXME: these fallback values are probably not good
170
- if (!g_settings->getU16NoEx (" emergequeue_limit_diskonly" , m_qlimit_diskonly))
170
+ if (!g_settings->getU32NoEx (" emergequeue_limit_diskonly" , m_qlimit_diskonly))
171
171
m_qlimit_diskonly = nthreads * 5 + 1 ;
172
- if (!g_settings->getU16NoEx (" emergequeue_limit_generate" , m_qlimit_generate))
172
+ if (!g_settings->getU32NoEx (" emergequeue_limit_generate" , m_qlimit_generate))
173
173
m_qlimit_generate = nthreads + 1 ;
174
174
175
175
// don't trust user input for something very important like this
176
- if (m_qlimit_total < 1 )
177
- m_qlimit_total = 1 ;
178
- if (m_qlimit_diskonly < 1 )
179
- m_qlimit_diskonly = 1 ;
180
- if (m_qlimit_generate < 1 )
181
- m_qlimit_generate = 1 ;
176
+ m_qlimit_total = rangelim (m_qlimit_total, 1 , 1000000 );
177
+ m_qlimit_diskonly = rangelim (m_qlimit_diskonly, 1 , 1000000 );
178
+ m_qlimit_generate = rangelim (m_qlimit_generate, 1 , 1000000 );
182
179
183
180
for (s16 i = 0 ; i < nthreads; i++)
184
181
m_threads.push_back (new EmergeThread (server, i));
@@ -425,14 +422,14 @@ bool EmergeManager::pushBlockEmergeData(
425
422
void *callback_param,
426
423
bool *entry_already_exists)
427
424
{
428
- u16 &count_peer = m_peer_queue_count[peer_requested];
425
+ u32 &count_peer = m_peer_queue_count[peer_requested];
429
426
430
427
if ((flags & BLOCK_EMERGE_FORCE_QUEUE) == 0 ) {
431
428
if (m_blocks_enqueued.size () >= m_qlimit_total)
432
429
return false ;
433
430
434
431
if (peer_requested != PEER_ID_INEXISTENT) {
435
- u16 qlimit_peer = (flags & BLOCK_EMERGE_ALLOW_GEN) ?
432
+ u32 qlimit_peer = (flags & BLOCK_EMERGE_ALLOW_GEN) ?
436
433
m_qlimit_generate : m_qlimit_diskonly;
437
434
if (count_peer >= qlimit_peer)
438
435
return false ;
@@ -467,20 +464,18 @@ bool EmergeManager::pushBlockEmergeData(
467
464
468
465
bool EmergeManager::popBlockEmergeData (v3s16 pos, BlockEmergeData *bedata)
469
466
{
470
- std::map<v3s16, BlockEmergeData>::iterator it;
471
- std::unordered_map<u16, u16>::iterator it2;
472
-
473
- it = m_blocks_enqueued.find (pos);
467
+ auto it = m_blocks_enqueued.find (pos);
474
468
if (it == m_blocks_enqueued.end ())
475
469
return false ;
476
470
477
471
*bedata = it->second ;
478
472
479
- it2 = m_peer_queue_count.find (bedata->peer_requested );
473
+ auto it2 = m_peer_queue_count.find (bedata->peer_requested );
480
474
if (it2 == m_peer_queue_count.end ())
481
475
return false ;
482
476
483
- u16 &count_peer = it2->second ;
477
+ u32 &count_peer = it2->second ;
478
+
484
479
assert (count_peer != 0 );
485
480
count_peer--;
486
481
0 commit comments