Don't use active transactions mutex lock during confirmation solicitor.prepare () (#2602)
This commit is contained in:
parent
ad4a4294da
commit
b3d99225f9
1 changed files with 6 additions and 3 deletions
|
|
@ -277,6 +277,12 @@ void nano::active_transactions::request_confirm (nano::unique_lock<std::mutex> &
|
||||||
lock_a.lock ();
|
lock_a.lock ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Only representatives ready to receive batched confirm_req
|
||||||
|
lock_a.unlock ();
|
||||||
|
solicitor.prepare (node.rep_crawler.representatives (node.network_params.protocol.tcp_realtime_protocol_version_min));
|
||||||
|
lock_a.lock ();
|
||||||
|
|
||||||
auto const now (std::chrono::steady_clock::now ());
|
auto const now (std::chrono::steady_clock::now ());
|
||||||
// Any new election started from process_live only gets requests after at least 1 second
|
// Any new election started from process_live only gets requests after at least 1 second
|
||||||
auto cutoff_l (now - election_request_delay);
|
auto cutoff_l (now - election_request_delay);
|
||||||
|
|
@ -293,9 +299,6 @@ void nano::active_transactions::request_confirm (nano::unique_lock<std::mutex> &
|
||||||
auto & sorted_roots_l = roots.get<tag_difficulty> ();
|
auto & sorted_roots_l = roots.get<tag_difficulty> ();
|
||||||
size_t count_l{ 0 };
|
size_t count_l{ 0 };
|
||||||
|
|
||||||
// Only representatives ready to receive batched confirm_req
|
|
||||||
solicitor.prepare (node.rep_crawler.representatives (node.network_params.protocol.tcp_realtime_protocol_version_min));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Loop through active elections in descending order of proof-of-work difficulty, requesting confirmation
|
* Loop through active elections in descending order of proof-of-work difficulty, requesting confirmation
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue