Skip to content

Commit 4305ccf

Browse files
committed
Update MIDIFeatureProcessor: add inProgressTasks set
1 parent db67dc7 commit 4305ccf

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

modules/core/src/main/java/jsymbolic2/processing/MIDIFeatureProcessor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@
1313
import javax.sound.midi.Sequence;
1414
import java.util.ArrayList;
1515
import java.util.Arrays;
16+
import java.util.Collections;
1617
import java.util.List;
1718
import java.util.Map;
19+
import java.util.Set;
1820
import java.util.concurrent.ConcurrentHashMap;
1921
import java.util.concurrent.ConcurrentMap;
2022
import java.util.concurrent.CountedCompleter;
2123
import java.util.concurrent.ForkJoinPool;
22-
import java.util.stream.Collectors;
2324
import java.util.stream.IntStream;
2425

2526
/**
@@ -505,6 +506,7 @@ private static class Worker extends CountedCompleter<Void> {
505506
private final ConcurrentMap<String, double[][]> map;
506507
private final MIDIFeatureExtractor featureExtractor;
507508
private int maxOffset;
509+
private final Set<String> inProgressTasks = Collections.newSetFromMap(new ConcurrentHashMap<>());
508510

509511
private Worker(CountedCompleter<?> completer,
510512
List<Sequence> sequences,
@@ -530,6 +532,7 @@ private Worker(CountedCompleter<?> completer,
530532
@Override
531533
public void compute() {
532534
List<Worker> workers = Arrays.stream(ArrayUtils.nullToEmpty(featureExtractor.getDepenedencies()))
535+
.filter(dependency -> inProgressTasks.add(dependency))
533536
.map(dependency -> new Worker(this, sequences, representations, map, name2extractor.get(dependency)))
534537
.toList();
535538

0 commit comments

Comments
 (0)