diff --git a/src/miner.cpp b/src/miner.cpp index b1a4b917f..cae77d46a 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -1122,6 +1122,7 @@ void static RandomXMiner() int randomxInterval = GetArg("-ac_randomx_interval",1024); // This lag is 80 mins for 75s blocktime and 64 mins for 60s (default) blocktime for HSCs int randomxBlockLag = GetArg("-ac_randomx_lag", 64); + randomx_vm *myVM = nullptr; try { // fprintf(stderr,"RandomXMiner: mining %s with randomx\n",SMART_CHAIN_SYMBOL); @@ -1198,7 +1199,7 @@ void static RandomXMiner() // randomx_init_dataset(randomxDataset, randomxCache, 0, datasetItemCount); rxdebug("%s: dataset initialized\n"); - randomx_vm *myVM = randomx_create_vm(flags, nullptr, randomxDataset); + myVM = randomx_create_vm(flags, nullptr, randomxDataset); if(myVM == NULL) { LogPrintf("RandomXMiner: Cannot create RandomX VM, aborting!\n"); return; @@ -1425,6 +1426,8 @@ void static RandomXMiner() miningTimer.stop(); c.disconnect(); + randomx_destroy_vm(myVM); + LogPrintf("%s: destroyed vm\n", __func__); randomx_release_dataset(randomxDataset); rxdebug("%s: released dataset\n"); randomx_release_cache(randomxCache); @@ -1437,6 +1440,8 @@ void static RandomXMiner() c.disconnect(); fprintf(stderr,"RandomXMiner: runtime error: %s\n", e.what()); + randomx_destroy_vm(myVM); + LogPrintf("%s: destroyed vm\n", __func__); randomx_release_dataset(randomxDataset); rxdebug("%s: released dataset\n"); randomx_release_cache(randomxCache);