elements/src/interfaces
Jonas Schnelli e4bfd51acc
Merge #18452: qt: Fix shutdown when waitfor* cmds are called from RPC console
da73f1513a qt: Fix shutdown when waitfor* cmds are called from RPC console (Hennadii Stepanov)

Pull request description:

  On master (7eed413e72), if the GUI has been started with`-server=1`, `bitcoin-qt` hangs on shutdown during calling any of the `waitfor*` commands in the GUI RPC console.

  This PR suggests minimal changes to fix this bug.

  Fix #17495

ACKs for top commit:
  jonasschnelli:
    utACK da73f1513a

Tree-SHA512: 469f5332945a5f2c57d19336cda5df79b123ccc494aea6d58a85eb1293be52708b2b9c5bb6bc2c402a90b7b4e9e8d7ab8fe84cf201cf7ce612c9290c57e43681
2020-05-29 15:49:46 +02:00
..
chain.cpp Merge #18922: gui: Do not translate InitWarning messages in debug.log 2020-05-13 20:30:39 +02:00
chain.h gui: Do not translate InitWarning messages in debug.log 2020-05-10 18:01:28 +03:00
handler.cpp scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
handler.h scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
node.cpp Merge #18452: qt: Fix shutdown when waitfor* cmds are called from RPC console 2020-05-29 15:49:46 +02:00
node.h BlockTip struct created and connected to notifyHeaderTip and notifyBlockTip signals. 2020-05-23 20:02:10 -03:00
README.md Suggested interfaces::Chain cleanups from #15288 2019-03-04 15:57:58 -05:00
wallet.cpp Added best block hash to the NotifyHeaderTip and NotifyBlockTip signals. 2020-05-23 20:02:04 -03:00
wallet.h Added best block hash to the NotifyHeaderTip and NotifyBlockTip signals. 2020-05-23 20:02:04 -03:00

Internal c++ interfaces

The following interfaces are defined here:

  • Chain — used by wallet to access blockchain and mempool state. Added in #14437, #14711, #15288, and #10973.

  • ChainClient — used by node to start & stop Chain clients. Added in #14437.

  • Node — used by GUI to start & stop bitcoin node. Added in #10244.

  • Wallet — used by GUI to access wallets. Added in #10244.

  • Handler — returned by handleEvent methods on interfaces above and used to manage lifetimes of event handlers.

  • Init — used by multiprocess code to access interfaces above on startup. Added in #10102.

The interfaces above define boundaries between major components of bitcoin code (node, wallet, and gui), making it possible for them to run in different processes, and be tested, developed, and understood independently. These interfaces are not currently designed to be stable or to be used externally.