From fd795b4361fd49bff88ed0f2e2faf140dd626e65 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Fri, 20 Aug 2021 20:19:51 +0100 Subject: [PATCH] Don't attempt to cleanup the filesystem if a build is in progress. This isn't essential but it helps to reduce unnecessary load and processing which would be better spent on building. --- .../org/qortal/arbitrary/ArbitraryDataReader.java | 3 ++- .../arbitrary/ArbitraryDataCleanupManager.java | 5 +++++ .../controller/arbitrary/ArbitraryDataManager.java | 11 +++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/qortal/arbitrary/ArbitraryDataReader.java b/src/main/java/org/qortal/arbitrary/ArbitraryDataReader.java index c2dc5289..51abe97f 100644 --- a/src/main/java/org/qortal/arbitrary/ArbitraryDataReader.java +++ b/src/main/java/org/qortal/arbitrary/ArbitraryDataReader.java @@ -129,12 +129,13 @@ public class ArbitraryDataReader { } private void preExecute() { + ArbitraryDataManager.getInstance().setBuildInProgress(true); this.createWorkingDirectory(); this.createUncompressedDirectory(); } private void postExecute() { - + ArbitraryDataManager.getInstance().setBuildInProgress(false); } private void createWorkingDirectory() { diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataCleanupManager.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataCleanupManager.java index 8295d23d..7e1a3256 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataCleanupManager.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataCleanupManager.java @@ -106,6 +106,11 @@ public class ArbitraryDataCleanupManager extends Thread { continue; } + // Don't interfere with the filesystem whilst a build is in progress + if (ArbitraryDataManager.getInstance().getBuildInProgress()) { + Thread.sleep(5000); + } + // Fetch the transaction data ArbitraryTransactionData arbitraryTransactionData = ArbitraryTransactionUtils.fetchTransactionData(repository, signature); diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java index 337bbfa7..c54ac43a 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java @@ -36,6 +36,8 @@ public class ArbitraryDataManager extends Thread { private static ArbitraryDataManager instance; + private boolean buildInProgress = false; + private volatile boolean isStopping = false; @@ -411,6 +413,15 @@ public class ArbitraryDataManager extends Thread { } + public void setBuildInProgress(boolean buildInProgress) { + this.buildInProgress = buildInProgress; + } + + public boolean getBuildInProgress() { + return this.buildInProgress; + } + + // Network handlers public void onNetworkGetArbitraryDataMessage(Peer peer, Message message) {