diff options
author | Matt Corallo <git@bluematt.me> | 2017-01-19 11:03:36 -0500 |
---|---|---|
committer | Matt Corallo <git@bluematt.me> | 2017-01-19 11:31:05 -0500 |
commit | 989989354b68d3954fe2742b96c53eeb2e8a7670 (patch) | |
tree | a687c5a58422f869ca8b7449b709ea9f94f1906f /src | |
parent | 054d664215ca8d5f17d8aadbfc5b78a8dcd5115c (diff) |
Move wallet callbacks into cs_main (this effectively reverts #7946)
Diffstat (limited to 'src')
-rw-r--r-- | src/validation.cpp | 17 |
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); |