Merge pull request 'Fix randomx mining memleak' (#326) from memleak into dev
Reviewed-on: https://git.hush.is/hush/hush3/pulls/326
This commit is contained in:
@@ -1122,6 +1122,7 @@ void static RandomXMiner()
|
|||||||
int randomxInterval = GetArg("-ac_randomx_interval",1024);
|
int randomxInterval = GetArg("-ac_randomx_interval",1024);
|
||||||
// This lag is 80 mins for 75s blocktime and 64 mins for 60s (default) blocktime for HSCs
|
// This lag is 80 mins for 75s blocktime and 64 mins for 60s (default) blocktime for HSCs
|
||||||
int randomxBlockLag = GetArg("-ac_randomx_lag", 64);
|
int randomxBlockLag = GetArg("-ac_randomx_lag", 64);
|
||||||
|
randomx_vm *myVM = nullptr;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// fprintf(stderr,"RandomXMiner: mining %s with randomx\n",SMART_CHAIN_SYMBOL);
|
// 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);
|
// randomx_init_dataset(randomxDataset, randomxCache, 0, datasetItemCount);
|
||||||
rxdebug("%s: dataset initialized\n");
|
rxdebug("%s: dataset initialized\n");
|
||||||
|
|
||||||
randomx_vm *myVM = randomx_create_vm(flags, nullptr, randomxDataset);
|
myVM = randomx_create_vm(flags, nullptr, randomxDataset);
|
||||||
if(myVM == NULL) {
|
if(myVM == NULL) {
|
||||||
LogPrintf("RandomXMiner: Cannot create RandomX VM, aborting!\n");
|
LogPrintf("RandomXMiner: Cannot create RandomX VM, aborting!\n");
|
||||||
return;
|
return;
|
||||||
@@ -1425,10 +1426,12 @@ void static RandomXMiner()
|
|||||||
miningTimer.stop();
|
miningTimer.stop();
|
||||||
c.disconnect();
|
c.disconnect();
|
||||||
|
|
||||||
|
randomx_destroy_vm(myVM);
|
||||||
|
LogPrintf("%s: destroyed vm via thread interrupt\n", __func__);
|
||||||
randomx_release_dataset(randomxDataset);
|
randomx_release_dataset(randomxDataset);
|
||||||
rxdebug("%s: released dataset\n");
|
rxdebug("%s: released dataset via thread interrupt\n");
|
||||||
randomx_release_cache(randomxCache);
|
randomx_release_cache(randomxCache);
|
||||||
rxdebug("%s: released cache\n");
|
rxdebug("%s: released cache via thread interrupt\n");
|
||||||
|
|
||||||
LogPrintf("HushRandomXMiner terminated\n");
|
LogPrintf("HushRandomXMiner terminated\n");
|
||||||
throw;
|
throw;
|
||||||
@@ -1437,18 +1440,20 @@ void static RandomXMiner()
|
|||||||
c.disconnect();
|
c.disconnect();
|
||||||
fprintf(stderr,"RandomXMiner: runtime error: %s\n", e.what());
|
fprintf(stderr,"RandomXMiner: runtime error: %s\n", e.what());
|
||||||
|
|
||||||
|
randomx_destroy_vm(myVM);
|
||||||
|
LogPrintf("%s: destroyed vm because of error\n", __func__);
|
||||||
randomx_release_dataset(randomxDataset);
|
randomx_release_dataset(randomxDataset);
|
||||||
rxdebug("%s: released dataset\n");
|
rxdebug("%s: released dataset because of error\n");
|
||||||
randomx_release_cache(randomxCache);
|
randomx_release_cache(randomxCache);
|
||||||
rxdebug("%s: released cache\n");
|
rxdebug("%s: released cache because of error\n");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
randomx_release_dataset(randomxDataset);
|
randomx_release_dataset(randomxDataset);
|
||||||
rxdebug("%s: released dataset\n");
|
rxdebug("%s: released dataset in normal exit\n");
|
||||||
randomx_release_cache(randomxCache);
|
randomx_release_cache(randomxCache);
|
||||||
rxdebug("%s: released cache\n");
|
rxdebug("%s: released cache in normal exit\n");
|
||||||
miningTimer.stop();
|
miningTimer.stop();
|
||||||
c.disconnect();
|
c.disconnect();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user