Browse Source

Update which lock to synchronize on when calling GetBestAnchor().

pull/4/head
Simon 7 years ago
parent
commit
b85008e786
  1. 2
      src/wallet/asyncrpcoperation_sendmany.cpp
  2. 7
      src/wallet/asyncrpcoperation_shieldcoinbase.cpp

2
src/wallet/asyncrpcoperation_sendmany.cpp

@ -878,7 +878,7 @@ UniValue AsyncRPCOperation_sendmany::perform_joinsplit(AsyncJoinSplitInfo & info
std::vector<boost::optional < ZCIncrementalWitness>> witnesses;
uint256 anchor;
{
LOCK2(cs_main, pwalletMain->cs_wallet);
LOCK(cs_main);
anchor = pcoinsTip->GetBestAnchor(); // As there are no inputs, ask the wallet for the best anchor
}
return perform_joinsplit(info, witnesses, anchor);

7
src/wallet/asyncrpcoperation_shieldcoinbase.cpp

@ -279,7 +279,12 @@ void AsyncRPCOperation_shieldcoinbase::sign_send_raw_transaction(UniValue obj)
UniValue AsyncRPCOperation_shieldcoinbase::perform_joinsplit(ShieldCoinbaseJSInfo & info) {
uint256 anchor = pcoinsTip->GetBestAnchor();
uint256 anchor;
{
LOCK(cs_main);
anchor = pcoinsTip->GetBestAnchor();
}
if (anchor.IsNull()) {
throw std::runtime_error("anchor is null");
}

Loading…
Cancel
Save