aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/chain.h
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2019-05-01 14:59:55 -0400
committerMarcoFalke <falke.marco@gmail.com>2019-05-01 15:02:31 -0400
commit0936f35f65ad778c1308f00b42b6182c7e64270f (patch)
tree3b7c1eb93f23232797fb8f06694d2fcca892c232 /src/interfaces/chain.h
parent12aa2ac988d0ccb21019a20b109e018cf31b78cf (diff)
parent422677963a7b41e340b911b4cd53d29dd8d63f21 (diff)
Merge #15842: refactor: replace isPotentialtip/waitForNotifications by higher method
422677963a refactor: replace isPotentialtip/waitForNotifications by higher method (Antoine Riard) edfe9438ca Add WITH_LOCK macro: run code while locking a mutex (Antoine Riard) Pull request description: In Chain interface, instead of a isPotentialTip and a WaitForNotifications method, both used only once in CWallet::BlockUntilSyncedToCurrentChain, combine them in a higher WaitForNotificationsUpToTip method. Semantic should be unchanged, wallet wait for pending notifications to be processed unless block hash points to the current chain tip or a descendant. ACKs for commit 422677: jnewbery: ACK 422677963a7b41e340b911b4cd53d29dd8d63f21 ryanofsky: utACK 422677963a7b41e340b911b4cd53d29dd8d63f21. Only change is adding the cs_wallet lock annotation. Tree-SHA512: 2834ff0218795ef607543fae822e5cce25d759c1a9cfcb1f896a4af03071faed5276fbe0966e0c6ed65dc0e88af161899c5b2ca358a2d24fe70969a550000bf2
Diffstat (limited to 'src/interfaces/chain.h')
-rw-r--r--src/interfaces/chain.h17
1 files changed, 4 insertions, 13 deletions
diff --git a/src/interfaces/chain.h b/src/interfaces/chain.h
index 7564ad26ac..0b7249a5ab 100644
--- a/src/interfaces/chain.h
+++ b/src/interfaces/chain.h
@@ -43,12 +43,6 @@ class Wallet;
//! asynchronously
//! (https://github.com/bitcoin/bitcoin/pull/10973#issuecomment-380101269).
//!
-//! * The isPotentialTip() and waitForNotifications() methods are too low-level
-//! and should be replaced with a higher level
-//! waitForNotificationsUpTo(block_hash) method that the wallet can call
-//! instead
-//! (https://github.com/bitcoin/bitcoin/pull/10973#discussion_r266995234).
-//!
//! * The relayTransactions() and submitToMemoryPool() methods could be replaced
//! with a higher-level broadcastTransaction method
//! (https://github.com/bitcoin/bitcoin/pull/14978#issuecomment-459373984).
@@ -123,11 +117,6 @@ public:
//! information is desired).
virtual Optional<int> findFork(const uint256& hash, Optional<int>* height) = 0;
- //! Return true if block hash points to the current chain tip, or to a
- //! possible descendant of the current chain tip that isn't currently
- //! connected.
- virtual bool isPotentialTip(const uint256& hash) = 0;
-
//! Get locator for the current chain tip.
virtual CBlockLocator getTipLocator() = 0;
@@ -256,8 +245,10 @@ public:
//! Register handler for notifications.
virtual std::unique_ptr<Handler> handleNotifications(Notifications& notifications) = 0;
- //! Wait for pending notifications to be handled.
- virtual void waitForNotifications() = 0;
+ //! Wait for pending notifications to be processed unless block hash points to the current
+ //! chain tip, or to a possible descendant of the current chain tip that isn't currently
+ //! connected.
+ virtual void waitForNotificationsIfNewBlocksConnected(const uint256& old_tip) = 0;
//! Register handler for RPC. Command is not copied, so reference
//! needs to remain valid until Handler is disconnected.