From 5ccef962d07c61a5c6924dba0a0a6b7be6f52ad7 Mon Sep 17 00:00:00 2001 From: chimp1984 Date: Tue, 26 Oct 2021 14:24:07 +0200 Subject: [PATCH] Add pruneStore method We set both data to null and call GC after persistence is done. --- .../dao/state/storage/DaoStateStorageService.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/bisq/core/dao/state/storage/DaoStateStorageService.java b/core/src/main/java/bisq/core/dao/state/storage/DaoStateStorageService.java index 2abf8bafe5..84625a0f7a 100644 --- a/core/src/main/java/bisq/core/dao/state/storage/DaoStateStorageService.java +++ b/core/src/main/java/bisq/core/dao/state/storage/DaoStateStorageService.java @@ -27,6 +27,7 @@ import bisq.network.p2p.storage.persistence.StoreService; import bisq.common.config.Config; import bisq.common.file.FileUtil; import bisq.common.persistence.PersistenceManager; +import bisq.common.util.GcUtil; import javax.inject.Inject; import javax.inject.Named; @@ -92,15 +93,20 @@ public class DaoStateStorageService extends StoreService { new Thread(() -> { Thread.currentThread().setName("Serialize and write DaoState"); persistenceManager.persistNow(() -> { - // After we have written to disk we remove the the daoState in the store to avoid that it stays in + // After we have written to disk we remove the daoState in the store to avoid that it stays in // memory there until the next persist call. - store.setDaoState(null); - + pruneStore(); completeHandler.run(); }); }).start(); } + public void pruneStore() { + store.setDaoState(null); + store.setDaoStateHashChain(null); + GcUtil.maybeReleaseMemory(); + } + public DaoState getPersistedBsqState() { return store.getDaoState(); }