refactor: Clamp worker threads in ChainstateManager constructor

This ensures the options are applied consistently from contexts where
they might not pass through the args manager, such as in some tests, or
when used through the kernel library.

This is similar to the patch applied in 09ef322acc.
This commit is contained in:
TheCharlatan
2024-11-17 22:20:31 +01:00
parent e546b4e1a0
commit 8f85d36d68
5 changed files with 7 additions and 5 deletions

View File

@@ -6260,7 +6260,7 @@ static ChainstateManager::Options&& Flatten(ChainstateManager::Options&& opts)
}
ChainstateManager::ChainstateManager(const util::SignalInterrupt& interrupt, Options options, node::BlockManager::Options blockman_options)
: m_script_check_queue{/*batch_size=*/128, options.worker_threads_num},
: m_script_check_queue{/*batch_size=*/128, std::clamp(options.worker_threads_num, 0, MAX_SCRIPTCHECK_THREADS)},
m_interrupt{interrupt},
m_options{Flatten(std::move(options))},
m_blockman{interrupt, std::move(blockman_options)},