mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-02 09:46:52 -05:00
Avoid excessive lock contention in CCheckQueue::Add
This commit is contained in:
parent
7efc628539
commit
c43aa62343
1 changed files with 8 additions and 5 deletions
|
@ -167,12 +167,15 @@ public:
|
|||
//! Add a batch of checks to the queue
|
||||
void Add(std::vector<T>& vChecks)
|
||||
{
|
||||
LOCK(m_mutex);
|
||||
for (T& check : vChecks) {
|
||||
queue.push_back(T());
|
||||
check.swap(queue.back());
|
||||
{
|
||||
LOCK(m_mutex);
|
||||
for (T& check : vChecks) {
|
||||
queue.emplace_back();
|
||||
check.swap(queue.back());
|
||||
}
|
||||
nTodo += vChecks.size();
|
||||
}
|
||||
nTodo += vChecks.size();
|
||||
|
||||
if (vChecks.size() == 1)
|
||||
m_worker_cv.notify_one();
|
||||
else if (vChecks.size() > 1)
|
||||
|
|
Loading…
Add table
Reference in a new issue