mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-19 18:09:47 +01:00
Remove g_parallel_script_checks
This commit is contained in:
parent
fa7c834b9f
commit
fa9ebec096
@ -199,11 +199,12 @@ public:
|
|||||||
WITH_LOCK(m_mutex, m_request_stop = false);
|
WITH_LOCK(m_mutex, m_request_stop = false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool HasThreads() const { return !m_worker_threads.empty(); }
|
||||||
|
|
||||||
~CCheckQueue()
|
~CCheckQueue()
|
||||||
{
|
{
|
||||||
assert(m_worker_threads.empty());
|
assert(m_worker_threads.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1143,7 +1143,6 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
|
|||||||
|
|
||||||
LogPrintf("Script verification uses %d additional threads\n", script_threads);
|
LogPrintf("Script verification uses %d additional threads\n", script_threads);
|
||||||
if (script_threads >= 1) {
|
if (script_threads >= 1) {
|
||||||
g_parallel_script_checks = true;
|
|
||||||
StartScriptCheckWorkerThreads(script_threads);
|
StartScriptCheckWorkerThreads(script_threads);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -198,10 +198,8 @@ ChainTestingSetup::ChainTestingSetup(const std::string& chainName, const std::ve
|
|||||||
m_node.chainman = std::make_unique<ChainstateManager>(chainman_opts);
|
m_node.chainman = std::make_unique<ChainstateManager>(chainman_opts);
|
||||||
m_node.chainman->m_blockman.m_block_tree_db = std::make_unique<CBlockTreeDB>(m_cache_sizes.block_tree_db, true);
|
m_node.chainman->m_blockman.m_block_tree_db = std::make_unique<CBlockTreeDB>(m_cache_sizes.block_tree_db, true);
|
||||||
|
|
||||||
// Start script-checking threads. Set g_parallel_script_checks to true so they are used.
|
|
||||||
constexpr int script_check_threads = 2;
|
constexpr int script_check_threads = 2;
|
||||||
StartScriptCheckWorkerThreads(script_check_threads);
|
StartScriptCheckWorkerThreads(script_check_threads);
|
||||||
g_parallel_script_checks = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ChainTestingSetup::~ChainTestingSetup()
|
ChainTestingSetup::~ChainTestingSetup()
|
||||||
|
@ -120,7 +120,6 @@ RecursiveMutex cs_main;
|
|||||||
GlobalMutex g_best_block_mutex;
|
GlobalMutex g_best_block_mutex;
|
||||||
std::condition_variable g_best_block_cv;
|
std::condition_variable g_best_block_cv;
|
||||||
uint256 g_best_block;
|
uint256 g_best_block;
|
||||||
bool g_parallel_script_checks{false};
|
|
||||||
|
|
||||||
const CBlockIndex* Chainstate::FindForkInGlobalIndex(const CBlockLocator& locator) const
|
const CBlockIndex* Chainstate::FindForkInGlobalIndex(const CBlockLocator& locator) const
|
||||||
{
|
{
|
||||||
@ -1991,6 +1990,7 @@ bool Chainstate::ConnectBlock(const CBlock& block, BlockValidationState& state,
|
|||||||
|
|
||||||
uint256 block_hash{block.GetHash()};
|
uint256 block_hash{block.GetHash()};
|
||||||
assert(*pindex->phashBlock == block_hash);
|
assert(*pindex->phashBlock == block_hash);
|
||||||
|
const bool parallel_script_checks{scriptcheckqueue.HasThreads()};
|
||||||
|
|
||||||
const auto time_start{SteadyClock::now()};
|
const auto time_start{SteadyClock::now()};
|
||||||
|
|
||||||
@ -2179,7 +2179,7 @@ bool Chainstate::ConnectBlock(const CBlock& block, BlockValidationState& state,
|
|||||||
// in multiple threads). Preallocate the vector size so a new allocation
|
// in multiple threads). Preallocate the vector size so a new allocation
|
||||||
// doesn't invalidate pointers into the vector, and keep txsdata in scope
|
// doesn't invalidate pointers into the vector, and keep txsdata in scope
|
||||||
// for as long as `control`.
|
// for as long as `control`.
|
||||||
CCheckQueueControl<CScriptCheck> control(fScriptChecks && g_parallel_script_checks ? &scriptcheckqueue : nullptr);
|
CCheckQueueControl<CScriptCheck> control(fScriptChecks && parallel_script_checks ? &scriptcheckqueue : nullptr);
|
||||||
std::vector<PrecomputedTransactionData> txsdata(block.vtx.size());
|
std::vector<PrecomputedTransactionData> txsdata(block.vtx.size());
|
||||||
|
|
||||||
std::vector<int> prevheights;
|
std::vector<int> prevheights;
|
||||||
@ -2238,7 +2238,7 @@ bool Chainstate::ConnectBlock(const CBlock& block, BlockValidationState& state,
|
|||||||
std::vector<CScriptCheck> vChecks;
|
std::vector<CScriptCheck> vChecks;
|
||||||
bool fCacheResults = fJustCheck; /* Don't cache results if we're actually connecting blocks (still consult the cache, though) */
|
bool fCacheResults = fJustCheck; /* Don't cache results if we're actually connecting blocks (still consult the cache, though) */
|
||||||
TxValidationState tx_state;
|
TxValidationState tx_state;
|
||||||
if (fScriptChecks && !CheckInputScripts(tx, tx_state, view, flags, fCacheResults, fCacheResults, txsdata[i], g_parallel_script_checks ? &vChecks : nullptr)) {
|
if (fScriptChecks && !CheckInputScripts(tx, tx_state, view, flags, fCacheResults, fCacheResults, txsdata[i], parallel_script_checks ? &vChecks : nullptr)) {
|
||||||
// Any transaction validation failure in ConnectBlock is a block consensus failure
|
// Any transaction validation failure in ConnectBlock is a block consensus failure
|
||||||
state.Invalid(BlockValidationResult::BLOCK_CONSENSUS,
|
state.Invalid(BlockValidationResult::BLOCK_CONSENSUS,
|
||||||
tx_state.GetRejectReason(), tx_state.GetDebugMessage());
|
tx_state.GetRejectReason(), tx_state.GetDebugMessage());
|
||||||
|
@ -91,10 +91,6 @@ extern GlobalMutex g_best_block_mutex;
|
|||||||
extern std::condition_variable g_best_block_cv;
|
extern std::condition_variable g_best_block_cv;
|
||||||
/** Used to notify getblocktemplate RPC of new tips. */
|
/** Used to notify getblocktemplate RPC of new tips. */
|
||||||
extern uint256 g_best_block;
|
extern uint256 g_best_block;
|
||||||
/** Whether there are dedicated script-checking threads running.
|
|
||||||
* False indicates all script checking is done on the main threadMessageHandler thread.
|
|
||||||
*/
|
|
||||||
extern bool g_parallel_script_checks;
|
|
||||||
|
|
||||||
/** Documentation for argument 'checklevel'. */
|
/** Documentation for argument 'checklevel'. */
|
||||||
extern const std::vector<std::string> CHECKLEVEL_DOC;
|
extern const std::vector<std::string> CHECKLEVEL_DOC;
|
||||||
|
Loading…
Reference in New Issue
Block a user