Skip to content

Commit cb071fe

Browse files
committed
fix: in memory kva use thread safe data structures
1 parent c613050 commit cb071fe

1 file changed

Lines changed: 8 additions & 7 deletions

File tree

src/main/java/org/janelia/saalfeldlab/n5/InMemoryKeyValueAccess.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@
3030

3131
import java.io.IOException;
3232
import java.io.UncheckedIOException;
33-
import java.nio.file.Path;
34-
import java.nio.file.Paths;
3533
import java.util.ArrayList;
36-
import java.util.HashMap;
34+
import java.util.Collections;
3735
import java.util.HashSet;
3836
import java.util.Iterator;
37+
import java.util.Map;
38+
import java.util.Set;
39+
import java.util.concurrent.ConcurrentHashMap;
3940

4041
import org.janelia.saalfeldlab.n5.N5Exception.N5IOException;
4142
import org.janelia.saalfeldlab.n5.N5Exception.N5NoSuchKeyException;
@@ -55,15 +56,15 @@ public class InMemoryKeyValueAccess implements KeyValueAccess {
5556

5657
private static final String ROOT = "/";
5758

58-
private HashMap<String,ReadData> files;
59-
private HashSet<String> directories;
59+
private Map<String,ReadData> files;
60+
private Set<String> directories;
6061

6162
/**
6263
* Creates a {@link InMemoryKeyValueAccess}.
6364
*/
6465
public InMemoryKeyValueAccess() {
65-
files = new HashMap<>();
66-
directories = new HashSet<>();
66+
files = new ConcurrentHashMap<>();
67+
directories = Collections.synchronizedSet(new HashSet<>());
6768
directories.add(ROOT);
6869
}
6970

0 commit comments

Comments
 (0)