aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatt Corallo <git@bluematt.me>2017-01-19 11:03:36 -0500
committerMatt Corallo <git@bluematt.me>2017-01-19 11:31:05 -0500
commit989989354b68d3954fe2742b96c53eeb2e8a7670 (patch)
treea687c5a58422f869ca8b7449b709ea9f94f1906f /src
parent054d664215ca8d5f17d8aadbfc5b78a8dcd5115c (diff)
Move wallet callbacks into cs_main (this effectively reverts #7946)
Diffstat (limited to 'src')
-rw-r--r--src/validation.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/validation.cpp b/src/validation.cpp
index bb13cbaadb..6bc20edd04 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -2473,20 +2473,19 @@ bool ActivateBestChain(CValidationState &state, const CChainParams& chainparams,
pindexNewTip = chainActive.Tip();
pindexFork = chainActive.FindFork(pindexOldTip);
fInitialDownload = IsInitialBlockDownload();
+
+ // throw all transactions though the signal-interface
+ for (const auto& pair : connectTrace.blocksConnected) {
+ assert(pair.second);
+ const CBlock& block = *(pair.second);
+ for (unsigned int i = 0; i < block.vtx.size(); i++)
+ GetMainSignals().SyncTransaction(*block.vtx[i], pair.first, i);
+ }
}
// When we reach this point, we switched to a new tip (stored in pindexNewTip).
// Notifications/callbacks that can run without cs_main
- // throw all transactions though the signal-interface
- // while _not_ holding the cs_main lock
- for (const auto& pair : connectTrace.blocksConnected) {
- assert(pair.second);
- const CBlock& block = *(pair.second);
- for (unsigned int i = 0; i < block.vtx.size(); i++)
- GetMainSignals().SyncTransaction(*block.vtx[i], pair.first, i);
- }
-
// Notify external listeners about the new tip.
GetMainSignals().UpdatedBlockTip(pindexNewTip, pindexFork, fInitialDownload);