mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-14 12:43:40 +02:00
Merge 7d14e35f3f into merged_master (Bitcoin PR #17342)
This commit is contained in:
commit
3f2190d870
5 changed files with 40 additions and 30 deletions
30
src/init.cpp
30
src/init.cpp
|
|
@ -1089,15 +1089,6 @@ bool AppInitParameterInteraction()
|
|||
incrementalRelayFee = CFeeRate(n);
|
||||
}
|
||||
|
||||
// -par=0 means autodetect, but nScriptCheckThreads==0 means no concurrency
|
||||
nScriptCheckThreads = gArgs.GetArg("-par", DEFAULT_SCRIPTCHECK_THREADS);
|
||||
if (nScriptCheckThreads <= 0)
|
||||
nScriptCheckThreads += GetNumCores();
|
||||
if (nScriptCheckThreads <= 1)
|
||||
nScriptCheckThreads = 0;
|
||||
else if (nScriptCheckThreads > MAX_SCRIPTCHECK_THREADS)
|
||||
nScriptCheckThreads = MAX_SCRIPTCHECK_THREADS;
|
||||
|
||||
// block pruning; get the amount of disk space (in MiB) to allot for block & undo files
|
||||
int64_t nPruneArg = gArgs.GetArg("-prune", 0);
|
||||
if (nPruneArg < 0) {
|
||||
|
|
@ -1294,10 +1285,25 @@ bool AppInitMain(NodeContext& node)
|
|||
InitSurjectionproofCache();
|
||||
|
||||
|
||||
LogPrintf("Script verification uses %d additional threads\n", std::max(nScriptCheckThreads - 1, 0));
|
||||
if (nScriptCheckThreads) {
|
||||
for (int i=0; i<nScriptCheckThreads-1; i++)
|
||||
int script_threads = gArgs.GetArg("-par", DEFAULT_SCRIPTCHECK_THREADS);
|
||||
if (script_threads <= 0) {
|
||||
// -par=0 means autodetect (number of cores - 1 script threads)
|
||||
// -par=-n means "leave n cores free" (number of cores - n - 1 script threads)
|
||||
script_threads += GetNumCores();
|
||||
}
|
||||
|
||||
// Subtract 1 because the main thread counts towards the par threads
|
||||
script_threads = std::max(script_threads - 1, 0);
|
||||
|
||||
// Number of script-checking threads <= MAX_SCRIPTCHECK_THREADS
|
||||
script_threads = std::min(script_threads, MAX_SCRIPTCHECK_THREADS);
|
||||
|
||||
LogPrintf("Script verification uses %d additional threads\n", script_threads);
|
||||
if (script_threads >= 1) {
|
||||
g_parallel_script_checks = true;
|
||||
for (int i = 0; i < script_threads; ++i) {
|
||||
threadGroup.create_thread([i]() { return ThreadScriptCheck(i); });
|
||||
}
|
||||
}
|
||||
|
||||
// Start the lightweight task scheduler thread
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue