aboutsummaryrefslogtreecommitdiff
path: root/src/wallet
diff options
context:
space:
mode:
authorJonas Schnelli <dev@jonasschnelli.ch>2017-12-13 11:06:51 -1000
committerJonas Schnelli <dev@jonasschnelli.ch>2018-01-23 20:24:53 -1000
commitccd8ef65f93ed82a87cee634660bed3ac17d9eb5 (patch)
tree41ec340b182e8711b7b47a76e126f4a003396fc1 /src/wallet
parentbc356b4268e222ac57d9e9297d2a986bb6e09de8 (diff)
Reduce cs_main lock in ReadBlockFromDisk, only read GetBlockPos under the lock
Diffstat (limited to 'src/wallet')
-rw-r--r--src/wallet/wallet.cpp7
1 files changed, 1 insertions, 6 deletions
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index 3bf649f266..dd9bc64728 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -1689,13 +1689,8 @@ CBlockIndex* CWallet::ScanForWalletTransactions(CBlockIndex* pindexStart, CBlock
LogPrintf("Still rescanning. At block %d. Progress=%f\n", pindex->nHeight, GuessVerificationProgress(chainParams.TxData(), pindex));
}
- bool readRet = false;
CBlock block;
- {
- LOCK(cs_main);
- readRet = ReadBlockFromDisk(block, pindex, Params().GetConsensus());
- }
- if (readRet) {
+ if (ReadBlockFromDisk(block, pindex, Params().GetConsensus())) {
LOCK2(cs_main, cs_wallet);
if (pindex && !chainActive.Contains(pindex)) {
// Abort scan if current block is no longer active, to prevent