Skip to content

Commit 1fa073e

Browse files
committed
[PEx] Improve cleanup of disk tasks on exit
1 parent 1167ab0 commit 1fa073e

File tree

5 files changed

+12
-11
lines changed

5 files changed

+12
-11
lines changed

Src/PRuntimes/PExplicitRuntime/src/main/java/pexplicit/PExplicit.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,6 @@ public static void main(String[] args) {
8282
}
8383
} finally {
8484
// log end-of-run metrics
85-
StatWriter.log("result", PExplicitGlobal.getResult());
86-
StatWriter.log("status", String.format("%s", PExplicitGlobal.getStatus()));
8785
StatWriter.log("exit-code", String.format("%d", exit_code));
8886

8987
// exit

Src/PRuntimes/PExplicitRuntime/src/main/java/pexplicit/RuntimeExecutor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ private static void printStats() {
7575
PExplicitGlobal.setStatus(STATUS.VERIFIED_UPTO_MAX_STEPS);
7676
}
7777
}
78+
79+
StatWriter.log("result", PExplicitGlobal.getResult());
80+
StatWriter.log("status", String.format("%s", PExplicitGlobal.getStatus()));
7881
}
7982

8083
private static void preprocess() {
@@ -136,9 +139,9 @@ private static void process(boolean resume) throws Exception {
136139
future.cancel(true);
137140
executor.shutdownNow();
138141
scheduler.updateResult();
139-
SearchTask.Cleanup();
140142
printStats();
141143
PExplicitLogger.logEndOfRun(scheduler, Duration.between(TimeMonitor.getStart(), Instant.now()).getSeconds());
144+
SearchTask.Cleanup();
142145
}
143146
}
144147

Src/PRuntimes/PExplicitRuntime/src/main/java/pexplicit/runtime/logger/PExplicitLogger.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import pexplicit.runtime.machine.PMonitor;
1414
import pexplicit.runtime.machine.State;
1515
import pexplicit.runtime.machine.events.PContinuation;
16-
import pexplicit.runtime.scheduler.Schedule;
1716
import pexplicit.runtime.scheduler.choice.ScheduleSearchUnit;
1817
import pexplicit.runtime.scheduler.choice.SearchUnit;
1918
import pexplicit.runtime.scheduler.explicit.ExplicitSearchScheduler;

Src/PRuntimes/PExplicitRuntime/src/main/java/pexplicit/runtime/scheduler/explicit/strategy/SearchStrategy.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public int getNumPendingDataChoices() {
110110
return numUnexplored;
111111
}
112112

113-
public abstract void addNewTask(SearchTask task);
114-
115113
abstract SearchTask popNextTask();
114+
115+
public abstract void addNewTask(SearchTask task);
116116
}

Src/PRuntimes/PExplicitRuntime/src/main/java/pexplicit/runtime/scheduler/explicit/strategy/SearchTask.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package pexplicit.runtime.scheduler.explicit.strategy;
22

33
import lombok.Getter;
4-
import org.apache.commons.io.FileUtils;
54
import pexplicit.runtime.PExplicitGlobal;
65
import pexplicit.runtime.logger.PExplicitLogger;
76
import pexplicit.runtime.machine.PMachineId;
@@ -54,11 +53,13 @@ public static void Initialize() {
5453

5554
public static void Cleanup() {
5655
String taskPath = PExplicitGlobal.getConfig().getOutputFolder() + "/tasks/";
57-
try {
58-
FileUtils.deleteDirectory(new File(taskPath));
59-
} catch (IOException e) {
60-
throw new RuntimeException("Failed to cleanup tasks at " + taskPath, e);
56+
File taskDir = new File(taskPath);
57+
String[] entries = taskDir.list();
58+
for (String s : entries) {
59+
File currentFile = new File(taskDir.getPath(), s);
60+
currentFile.delete();
6161
}
62+
taskDir.delete();
6263
}
6364

6465
public boolean isInitialTask() {

0 commit comments

Comments
 (0)