wallet2: cut down on the number of useless derivation threads

release-v0.5.0
moneromooo-monero 6 years ago committed by wowario
parent ccaffcfbb5
commit fb3f6e723d
No known key found for this signature in database
GPG Key ID: 24DCBE762DE9C111

@ -2193,7 +2193,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");
@ -2202,12 +2201,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)
{ {
for (auto &iod: slot.primary) tpool.submit(&waiter, [&hwdev, &gender, &tx_cache_data, i]() {
tpool.submit(&waiter, [&gender, &iod]() { gender(iod); }, true); auto &slot = tx_cache_data[i];
for (auto &iod: slot.additional) boost::unique_lock<hw::device> hwdev_lock(hwdev);
tpool.submit(&waiter, [&gender, &iod]() { gender(iod); }, true); for (auto &iod: slot.primary)
gender(iod);
for (auto &iod: slot.additional)
gender(iod);
}, true);
} }
waiter.wait(&tpool); waiter.wait(&tpool);

Loading…
Cancel
Save