mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 23:18:14 +01:00
Disconnect BlockNotifyGenesisWait and RPCNotifyBlockChange properly. Remove no-op CClientUIInterface::[signal_name]_disconnect.
This commit is contained in:
10
src/init.cpp
10
src/init.cpp
@@ -339,14 +339,15 @@ static void registerSignalHandler(int signal, void(*handler)(int))
|
||||
}
|
||||
#endif
|
||||
|
||||
static boost::signals2::connection rpc_notify_block_change_connection;
|
||||
static void OnRPCStarted()
|
||||
{
|
||||
uiInterface.NotifyBlockTip_connect(&RPCNotifyBlockChange);
|
||||
rpc_notify_block_change_connection = uiInterface.NotifyBlockTip_connect(&RPCNotifyBlockChange);
|
||||
}
|
||||
|
||||
static void OnRPCStopped()
|
||||
{
|
||||
uiInterface.NotifyBlockTip_disconnect(&RPCNotifyBlockChange);
|
||||
rpc_notify_block_change_connection.disconnect();
|
||||
RPCNotifyBlockChange(false, nullptr);
|
||||
g_best_block_cv.notify_all();
|
||||
LogPrint(BCLog::RPC, "RPC stopped.\n");
|
||||
@@ -1687,8 +1688,9 @@ bool AppInitMain(InitInterfaces& interfaces)
|
||||
|
||||
// Either install a handler to notify us when genesis activates, or set fHaveGenesis directly.
|
||||
// No locking, as this happens before any background thread is started.
|
||||
boost::signals2::connection block_notify_genesis_wait_connection;
|
||||
if (chainActive.Tip() == nullptr) {
|
||||
uiInterface.NotifyBlockTip_connect(BlockNotifyGenesisWait);
|
||||
block_notify_genesis_wait_connection = uiInterface.NotifyBlockTip_connect(BlockNotifyGenesisWait);
|
||||
} else {
|
||||
fHaveGenesis = true;
|
||||
}
|
||||
@@ -1712,7 +1714,7 @@ bool AppInitMain(InitInterfaces& interfaces)
|
||||
while (!fHaveGenesis && !ShutdownRequested()) {
|
||||
g_genesis_wait_cv.wait_for(lock, std::chrono::milliseconds(500));
|
||||
}
|
||||
uiInterface.NotifyBlockTip_disconnect(BlockNotifyGenesisWait);
|
||||
block_notify_genesis_wait_connection.disconnect();
|
||||
}
|
||||
|
||||
if (ShutdownRequested()) {
|
||||
|
||||
Reference in New Issue
Block a user