Skip to content

Commit 4bf6044

Browse files
committed
Extract method for separate steps
1 parent 650fa52 commit 4bf6044

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

junit-platform-engine/src/main/java/org/junit/platform/engine/support/hierarchical/ForkJoinPoolHierarchicalTestExecutorService.java

+14
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,13 @@ public void invokeAll(List<? extends TestTask> tasks) {
107107
}
108108
Deque<ExclusiveTask> nonConcurrentTasks = new LinkedList<>();
109109
Deque<ExclusiveTask> concurrentTasksInReverseOrder = new LinkedList<>();
110+
forkConcurrentTasks(tasks, nonConcurrentTasks, concurrentTasksInReverseOrder);
111+
executeNonConcurrentTasks(nonConcurrentTasks);
112+
joinConcurrentTasksInReverseOrderToEnableWorkStealing(concurrentTasksInReverseOrder);
113+
}
114+
115+
private void forkConcurrentTasks(List<? extends TestTask> tasks, Deque<ExclusiveTask> nonConcurrentTasks,
116+
Deque<ExclusiveTask> concurrentTasksInReverseOrder) {
110117
for (TestTask testTask : tasks) {
111118
ExclusiveTask exclusiveTask = new ExclusiveTask(testTask);
112119
if (testTask.getExecutionMode() == CONCURRENT) {
@@ -117,9 +124,16 @@ public void invokeAll(List<? extends TestTask> tasks) {
117124
nonConcurrentTasks.add(exclusiveTask);
118125
}
119126
}
127+
}
128+
129+
private void executeNonConcurrentTasks(Deque<ExclusiveTask> nonConcurrentTasks) {
120130
for (ExclusiveTask task : nonConcurrentTasks) {
121131
task.compute();
122132
}
133+
}
134+
135+
private void joinConcurrentTasksInReverseOrderToEnableWorkStealing(
136+
Deque<ExclusiveTask> concurrentTasksInReverseOrder) {
123137
for (ExclusiveTask forkedTask : concurrentTasksInReverseOrder) {
124138
forkedTask.join();
125139
}

0 commit comments

Comments
 (0)