daemon: fix crash on exit when mining
When exiting while the miner is running, finding a block after the p2p layer has been shutdown will cause a crash as the now uninitialized p2p layer is asked to relay the found block to any peers.
This commit is contained in:
parent
cb54eeaa31
commit
cf2e75ebb3
1 changed files with 2 additions and 0 deletions
|
@ -141,6 +141,7 @@ bool t_daemon::run(bool interactive)
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_internals->rpc.stop();
|
mp_internals->rpc.stop();
|
||||||
|
mp_internals->core.get().get_miner().stop();
|
||||||
MGINFO("Node stopped.");
|
MGINFO("Node stopped.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -162,6 +163,7 @@ void t_daemon::stop()
|
||||||
{
|
{
|
||||||
throw std::runtime_error{"Can't stop stopped daemon"};
|
throw std::runtime_error{"Can't stop stopped daemon"};
|
||||||
}
|
}
|
||||||
|
mp_internals->core.get().get_miner().stop();
|
||||||
mp_internals->p2p.stop();
|
mp_internals->p2p.stop();
|
||||||
mp_internals->rpc.stop();
|
mp_internals->rpc.stop();
|
||||||
mp_internals.reset(nullptr); // Ensure resources are cleaned up before we return
|
mp_internals.reset(nullptr); // Ensure resources are cleaned up before we return
|
||||||
|
|
Loading…
Reference in a new issue