Clean up mining CReserveKey to prevent crash at shutdown
Fixes issue#2687
This commit is contained in:
@@ -30,6 +30,10 @@ using namespace boost;
|
||||
using namespace boost::asio;
|
||||
using namespace json_spirit;
|
||||
|
||||
// Key used by getwork/getblocktemplate miners.
|
||||
// Allocated in StartRPCThreads, free'd in StopRPCThreads
|
||||
CReserveKey* pMiningKey = NULL;
|
||||
|
||||
static std::string strRPCUserColonPass;
|
||||
|
||||
// These are created by StartRPCThreads, destroyed in StopRPCThreads
|
||||
@@ -722,6 +726,9 @@ static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol,
|
||||
|
||||
void StartRPCThreads()
|
||||
{
|
||||
// getwork/getblocktemplate mining rewards paid here:
|
||||
pMiningKey = new CReserveKey(pwalletMain);
|
||||
|
||||
strRPCUserColonPass = mapArgs["-rpcuser"] + ":" + mapArgs["-rpcpassword"];
|
||||
if ((mapArgs["-rpcpassword"] == "") ||
|
||||
(mapArgs["-rpcuser"] == mapArgs["-rpcpassword"]))
|
||||
@@ -841,6 +848,8 @@ void StartRPCThreads()
|
||||
|
||||
void StopRPCThreads()
|
||||
{
|
||||
delete pMiningKey; pMiningKey = NULL;
|
||||
|
||||
if (rpc_io_service == NULL) return;
|
||||
|
||||
rpc_io_service->stop();
|
||||
|
||||
Reference in New Issue
Block a user