Load saves in parallel

This commit is contained in:
Anuken
2023-04-18 09:35:29 -04:00
parent d043c75022
commit 3ca3eb5951
4 changed files with 26 additions and 8 deletions

View File

@@ -17,6 +17,7 @@ import mindustry.type.*;
import java.io.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import static mindustry.Vars.*;
@@ -47,11 +48,24 @@ public class Saves{
public void load(){
saves.clear();
//read saves in parallel
Seq<Future<SaveSlot>> futures = new Seq<>();
for(Fi file : saveDirectory.list()){
if(!file.name().contains("backup") && SaveIO.isSaveValid(file)){
SaveSlot slot = new SaveSlot(file);
saves.add(slot);
slot.meta = SaveIO.getMeta(file);
futures.add(mainExecutor.submit(() -> {
SaveSlot slot = new SaveSlot(file);
slot.meta = SaveIO.getMeta(file);
return slot;
}));
}
}
for(var future : futures){
try{
saves.add(future.get());
}catch(Exception e){
Log.err(e);
}
}