Auto merge of #2632 - bitcartel:2623_update_getbestanchor_lock, r=str4d

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

Closes issue #2623.
This commit is contained in:
Homu 2017-09-27 07:14:20 -07:00
commit 14148301e6
2 changed files with 7 additions and 2 deletions

View File

@ -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);

View File

@ -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");
}