mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-19 14:53:43 +01:00
kernel: De-globalize script execution cache
Move its ownership to the ChainstateManager class. Next to simplifying usage of the kernel library by no longer requiring manual setup of the cache prior to using validation code, it also slims down the amount of memory allocated by BasicTestingSetup.
This commit is contained in:
@@ -56,6 +56,15 @@ util::Result<void> ApplyArgsManOptions(const ArgsManager& args, ChainstateManage
|
||||
opts.worker_threads_num = std::clamp(script_threads - 1, 0, MAX_SCRIPTCHECK_THREADS);
|
||||
LogPrintf("Script verification uses %d additional threads\n", opts.worker_threads_num);
|
||||
|
||||
if (auto max_size = args.GetIntArg("-maxsigcachesize")) {
|
||||
// 1. When supplied with a max_size of 0, both the signature cache and
|
||||
// script execution cache create the minimum possible cache (2
|
||||
// elements). Therefore, we can use 0 as a floor here.
|
||||
// 2. Multiply first, divide after to avoid integer truncation.
|
||||
size_t clamped_size_each = std::max<int64_t>(*max_size, 0) * (1 << 20) / 2;
|
||||
opts.script_execution_cache_bytes = clamped_size_each;
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
} // namespace node
|
||||
|
||||
Reference in New Issue
Block a user