mirror of
https://github.com/monero-project/monero.git
synced 2024-11-18 00:37:43 +00:00
wallet2: cut down on the number of useless derivation threads
This commit is contained in:
parent
6bc0c7e685
commit
808a1f1e8a
1 changed files with 9 additions and 6 deletions
|
@ -2151,7 +2151,6 @@ void wallet2::process_parsed_blocks(uint64_t start_height, const std::vector<cry
|
||||||
const cryptonote::account_keys &keys = m_account.get_keys();
|
const cryptonote::account_keys &keys = m_account.get_keys();
|
||||||
|
|
||||||
auto gender = [&](wallet2::is_out_data &iod) {
|
auto gender = [&](wallet2::is_out_data &iod) {
|
||||||
boost::unique_lock<hw::device> hwdev_lock(hwdev);
|
|
||||||
if (!hwdev.generate_key_derivation(iod.pkey, keys.m_view_secret_key, iod.derivation))
|
if (!hwdev.generate_key_derivation(iod.pkey, keys.m_view_secret_key, iod.derivation))
|
||||||
{
|
{
|
||||||
MWARNING("Failed to generate key derivation from tx pubkey, skipping");
|
MWARNING("Failed to generate key derivation from tx pubkey, skipping");
|
||||||
|
@ -2160,12 +2159,16 @@ void wallet2::process_parsed_blocks(uint64_t start_height, const std::vector<cry
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
for (auto &slot: tx_cache_data)
|
for (size_t i = 0; i < tx_cache_data.size(); ++i)
|
||||||
{
|
{
|
||||||
|
tpool.submit(&waiter, [&hwdev, &gender, &tx_cache_data, i]() {
|
||||||
|
auto &slot = tx_cache_data[i];
|
||||||
|
boost::unique_lock<hw::device> hwdev_lock(hwdev);
|
||||||
for (auto &iod: slot.primary)
|
for (auto &iod: slot.primary)
|
||||||
tpool.submit(&waiter, [&gender, &iod]() { gender(iod); }, true);
|
gender(iod);
|
||||||
for (auto &iod: slot.additional)
|
for (auto &iod: slot.additional)
|
||||||
tpool.submit(&waiter, [&gender, &iod]() { gender(iod); }, true);
|
gender(iod);
|
||||||
|
}, true);
|
||||||
}
|
}
|
||||||
waiter.wait(&tpool);
|
waiter.wait(&tpool);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue