Wait for saves to finish when the file might be read immediately after saving.

This commit is contained in:
Ottermandias 2023-12-10 15:10:43 +01:00
parent a9f36c6aef
commit bb742463e9
6 changed files with 10 additions and 9 deletions

@ -1 +1 @@
Subproject commit 3e2d4ae934694918d312280d62127cf1a55b03e4
Subproject commit 7098e9577117a3555f5f6181edae6cd306a4b5d4

View file

@ -14,7 +14,7 @@ internal static class ModCollectionMigration
{
var changes = MigrateV0ToV1(collection, ref version);
if (changes)
saver.ImmediateSave(new ModCollectionSave(mods, collection));
saver.ImmediateSaveSync(new ModCollectionSave(mods, collection));
}
/// <summary> Migrate a mod collection from Version 0 to Version 1, which introduced support for inheritance. </summary>

View file

@ -82,7 +82,7 @@ public class DuplicateManager
{
var sub = (SubMod)subMod;
sub.FileData = dict;
_saveService.ImmediateSave(new ModSaveGroup(mod, groupIdx));
_saveService.ImmediateSaveSync(new ModSaveGroup(mod, groupIdx));
}
}

View file

@ -177,7 +177,7 @@ public partial class ModCreator
return;
_saveService.SaveAllOptionGroups(mod, false);
_saveService.ImmediateSave(new ModSaveGroup(mod.ModPath, mod.Default));
_saveService.ImmediateSaveSync(new ModSaveGroup(mod.ModPath, mod.Default));
}
@ -261,7 +261,7 @@ public partial class ModCreator
DefaultSettings = defaultSettings,
};
group.PrioritizedOptions.AddRange(subMods.OfType<SubMod>().Select((s, idx) => (s, idx)));
_saveService.ImmediateSave(new ModSaveGroup(baseFolder, group, index));
_saveService.ImmediateSaveSync(new ModSaveGroup(baseFolder, group, index));
break;
}
case GroupType.Single:
@ -274,7 +274,7 @@ public partial class ModCreator
DefaultSettings = defaultSettings,
};
group.OptionData.AddRange(subMods.OfType<SubMod>());
_saveService.ImmediateSave(new ModSaveGroup(baseFolder, group, index));
_saveService.ImmediateSaveSync(new ModSaveGroup(baseFolder, group, index));
break;
}
}
@ -321,7 +321,7 @@ public partial class ModCreator
}
IncorporateMetaChanges(mod.Default, directory, true);
_saveService.ImmediateSave(new ModSaveGroup(mod, -1));
_saveService.ImmediateSaveSync(new ModSaveGroup(mod, -1));
}
/// <summary> Return the name of a new valid directory based on the base directory and the given name. </summary>

View file

@ -372,7 +372,7 @@ public class ConfigMigrationService
var emptyStorage = new ModStorage();
var collection = ModCollection.CreateFromData(_saveService, emptyStorage, ModCollection.DefaultCollectionName, 0, 1, dict,
Array.Empty<string>());
_saveService.ImmediateSave(new ModCollectionSave(emptyStorage, collection));
_saveService.ImmediateSaveSync(new ModCollectionSave(emptyStorage, collection));
}
catch (Exception e)
{

View file

@ -36,7 +36,8 @@ public sealed class SaveService : SaveServiceBase<FilenameService>
}
}
for (var i = 0; i < mod.Groups.Count; ++i)
for (var i = 0; i < mod.Groups.Count - 1; ++i)
ImmediateSave(new ModSaveGroup(mod, i));
ImmediateSaveSync(new ModSaveGroup(mod, mod.Groups.Count - 1));
}
}