mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-19 23:31:01 +00:00
parallel pack loading
This commit is contained in:
+3
-2
@@ -23,6 +23,7 @@ import java.nio.file.Files;
|
|||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import com.dfsek.terra.api.Platform;
|
import com.dfsek.terra.api.Platform;
|
||||||
@@ -44,9 +45,9 @@ public class ConfigRegistry extends OpenRegistryImpl<ConfigPack> {
|
|||||||
public synchronized void loadAll(Platform platform) throws IOException, PackLoadFailuresException {
|
public synchronized void loadAll(Platform platform) throws IOException, PackLoadFailuresException {
|
||||||
Path packsDirectory = platform.getDataFolder().toPath().resolve("packs");
|
Path packsDirectory = platform.getDataFolder().toPath().resolve("packs");
|
||||||
Files.createDirectories(packsDirectory);
|
Files.createDirectories(packsDirectory);
|
||||||
List<Exception> failedLoads = new ArrayList<>();
|
List<Exception> failedLoads = new CopyOnWriteArrayList<>();
|
||||||
try(Stream<Path> packs = Files.list(packsDirectory)) {
|
try(Stream<Path> packs = Files.list(packsDirectory)) {
|
||||||
packs.forEach(path -> {
|
packs.parallel().forEach(path -> {
|
||||||
try {
|
try {
|
||||||
ConfigPack pack = new ConfigPackImpl(path, platform);
|
ConfigPack pack = new ConfigPackImpl(path, platform);
|
||||||
registerChecked(pack.getRegistryKey(), pack);
|
registerChecked(pack.getRegistryKey(), pack);
|
||||||
|
|||||||
Reference in New Issue
Block a user