Skip to content

Commit 9d1beb3

Browse files
committed
Move wallet callbacks into cs_main.
adaptation of btc@989989354b68d3954fe2742b96c53eeb2e8a7670
1 parent 4b4858b commit 9d1beb3

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/main.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3031,22 +3031,22 @@ bool ActivateBestChain(CValidationState& state, const CBlock* pblock, bool fAlre
30313031
pindexNewTip = chainActive.Tip();
30323032
pindexFork = chainActive.FindFork(pindexOldTip);
30333033
fInitialDownload = IsInitialBlockDownload();
3034+
3035+
// throw all transactions though the signal-interface
3036+
for (const CTransaction &tx : txConflicted) {
3037+
GetMainSignals().SyncTransaction(tx, pindexNewTip, CMainSignals::SYNC_TRANSACTION_NOT_IN_BLOCK);
3038+
}
3039+
// ... and about transactions that got confirmed:
3040+
for(unsigned int i = 0; i < txChanged.size(); i++) {
3041+
GetMainSignals().SyncTransaction(std::get<0>(txChanged[i]), std::get<1>(txChanged[i]), std::get<2>(txChanged[i]));
3042+
}
3043+
30343044
break;
30353045
}
30363046

30373047
// When we reach this point, we switched to a new tip (stored in pindexNewTip).
30383048
// Notifications/callbacks that can run without cs_main
30393049

3040-
// throw all transactions though the signal-interface
3041-
// while _not_ holding the cs_main lock
3042-
for (const CTransaction &tx : txConflicted) {
3043-
GetMainSignals().SyncTransaction(tx, pindexNewTip, CMainSignals::SYNC_TRANSACTION_NOT_IN_BLOCK);
3044-
}
3045-
// ... and about transactions that got confirmed:
3046-
for(unsigned int i = 0; i < txChanged.size(); i++) {
3047-
GetMainSignals().SyncTransaction(std::get<0>(txChanged[i]), std::get<1>(txChanged[i]), std::get<2>(txChanged[i]));
3048-
}
3049-
30503050
// Always notify the UI if a new block tip was connected
30513051
if (pindexFork != pindexNewTip) {
30523052

0 commit comments

Comments
 (0)