validation: only call UpdatedBlockTip for active chainstate

This notification isn't needed for background chainstates.

`kernel::Notifications::blockTip` are also skipped.
This commit is contained in:
James O'Beirne committed 2023-09-30 06:38:47 -04:00
1 parent c6af23c517
commit 1e59acdf17
2 files changed
+2 -2

No files matched your search

+1 -1
View File
@@ -3263,7 +3263,7 @@ bool Chainstate::ActivateBestChain(BlockValidationState& state, std::shared_ptr<
// Notify external listeners about the new tip.
// Enqueue while holding cs_main to ensure that UpdatedBlockTip is called in the order in which blocks are connected
if (pindexFork != pindexNewTip) {
if (this == &m_chainman.ActiveChainstate() && pindexFork != pindexNewTip) {
// Notify ValidationInterface subscribers
GetMainSignals().UpdatedBlockTip(pindexNewTip, pindexFork, still_in_ibd);
+1 -1
View File
@@ -87,7 +87,7 @@ protected:
* but may not be called on every intermediate tip. If the latter behavior is desired,
* subscribe to BlockConnected() instead.
*
* Called on a background thread.
* Called on a background thread. Only called for the active chainstate.
*/
virtual void UpdatedBlockTip(const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload) {}
/**