diff --git a/OtterGui b/OtterGui index 1be9365d..5a2e12a1 160000 --- a/OtterGui +++ b/OtterGui @@ -1 +1 @@ -Subproject commit 1be9365d048bf1da3700e8cf1df9acbe42523f5c +Subproject commit 5a2e12a1acd6760a3a592447a92215135e79197c diff --git a/Penumbra.GameData b/Penumbra.GameData index c0c7eb0d..c39f683d 160000 --- a/Penumbra.GameData +++ b/Penumbra.GameData @@ -1 +1 @@ -Subproject commit c0c7eb0dedb32ea83b019626abba041e90a95319 +Subproject commit c39f683d65d4541e9f97ed4ea1abcb10e8ca5690 diff --git a/Penumbra/Collections/Manager/IndividualCollections.Files.cs b/Penumbra/Collections/Manager/IndividualCollections.Files.cs index dc20da1e..21a8cf8a 100644 --- a/Penumbra/Collections/Manager/IndividualCollections.Files.cs +++ b/Penumbra/Collections/Manager/IndividualCollections.Files.cs @@ -41,7 +41,7 @@ public partial class IndividualCollections saver.ImmediateSave(parent); IsLoaded = true; Loaded.Invoke(); - }); + }, TaskScheduler.Default); return false; } diff --git a/Penumbra/Import/Models/ModelManager.cs b/Penumbra/Import/Models/ModelManager.cs index 2c341c8b..1a52c4dd 100644 --- a/Penumbra/Import/Models/ModelManager.cs +++ b/Penumbra/Import/Models/ModelManager.cs @@ -162,7 +162,7 @@ public sealed class ModelManager(IFramework framework, ActiveCollections collect { return _tasks.TryRemove(a, out var unused); } - }, CancellationToken.None); + }, CancellationToken.None, TaskContinuationOptions.None, TaskScheduler.Default); return (t, token); }).Item1; } @@ -178,7 +178,7 @@ public sealed class ModelManager(IFramework framework, ActiveCollections collect throw task.Exception; return process(action); - }); + }, TaskScheduler.Default); private class ExportToGltfAction( ModelManager manager, diff --git a/Penumbra/Import/TexToolsImport.cs b/Penumbra/Import/TexToolsImport.cs index 3f3304b8..bb006d8d 100644 --- a/Penumbra/Import/TexToolsImport.cs +++ b/Penumbra/Import/TexToolsImport.cs @@ -46,12 +46,12 @@ public partial class TexToolsImporter : IDisposable ExtractedMods = new List<(FileInfo, DirectoryInfo?, Exception?)>(count); _token = _cancellation.Token; Task.Run(ImportFiles, _token) - .ContinueWith(_ => CloseStreams()) + .ContinueWith(_ => CloseStreams(), TaskScheduler.Default) .ContinueWith(_ => { foreach (var (file, dir, error) in ExtractedMods) handler(file, dir, error); - }); + }, TaskScheduler.Default); } private void CloseStreams() diff --git a/Penumbra/Import/Textures/TextureManager.cs b/Penumbra/Import/Textures/TextureManager.cs index 5653d760..976bc179 100644 --- a/Penumbra/Import/Textures/TextureManager.cs +++ b/Penumbra/Import/Textures/TextureManager.cs @@ -64,7 +64,7 @@ public sealed class TextureManager : SingleTaskQueue, IDisposable { var token = new CancellationTokenSource(); var task = Enqueue(a, token.Token); - task.ContinueWith(_ => _tasks.TryRemove(a, out var unused), CancellationToken.None); + task.ContinueWith(_ => _tasks.TryRemove(a, out var unused), CancellationToken.None, TaskContinuationOptions.None, TaskScheduler.Default); return (task, token); }).Item1; } diff --git a/Penumbra/Mods/Manager/ModCacheManager.cs b/Penumbra/Mods/Manager/ModCacheManager.cs index a95567ce..99ad1a4f 100644 --- a/Penumbra/Mods/Manager/ModCacheManager.cs +++ b/Penumbra/Mods/Manager/ModCacheManager.cs @@ -23,7 +23,7 @@ public class ModCacheManager : IDisposable _communicator.ModPathChanged.Subscribe(OnModPathChange, ModPathChanged.Priority.ModCacheManager); _communicator.ModDataChanged.Subscribe(OnModDataChange, ModDataChanged.Priority.ModCacheManager); _communicator.ModDiscoveryFinished.Subscribe(OnModDiscoveryFinished, ModDiscoveryFinished.Priority.ModCacheManager); - identifier.Awaiter.ContinueWith(_ => OnIdentifierCreation()); + identifier.Awaiter.ContinueWith(_ => OnIdentifierCreation(), TaskScheduler.Default); OnModDiscoveryFinished(); } diff --git a/Penumbra/Services/ServiceWrapper.cs b/Penumbra/Services/ServiceWrapper.cs index 37acdfd0..e321b35c 100644 --- a/Penumbra/Services/ServiceWrapper.cs +++ b/Penumbra/Services/ServiceWrapper.cs @@ -74,7 +74,7 @@ public abstract class AsyncServiceWrapper : IDisposable { if (!_isDisposed) FinishedCreation?.Invoke(); - }, null); + }, TaskScheduler.Default); } public void Dispose() diff --git a/Penumbra/UI/AdvancedWindow/ModEditWindow.Models.MdlTab.cs b/Penumbra/UI/AdvancedWindow/ModEditWindow.Models.MdlTab.cs index 637c8401..cca8fe10 100644 --- a/Penumbra/UI/AdvancedWindow/ModEditWindow.Models.MdlTab.cs +++ b/Penumbra/UI/AdvancedWindow/ModEditWindow.Models.MdlTab.cs @@ -92,7 +92,7 @@ public partial class ModEditWindow .ToList(); }); - task.ContinueWith(t => { GamePaths = FinalizeIo(t); }); + task.ContinueWith(t => { GamePaths = FinalizeIo(t); }, TaskScheduler.Default); } private EstManipulation[] GetCurrentEstManipulations() @@ -130,7 +130,7 @@ public partial class ModEditWindow BeginIo(); _edit._models.ExportToGltf(ExportConfig, Mdl, sklbPaths, ReadFile, outputPath) - .ContinueWith(FinalizeIo); + .ContinueWith(FinalizeIo, TaskScheduler.Default); } /// Import a model from an interchange format. @@ -144,7 +144,7 @@ public partial class ModEditWindow var mdlFile = FinalizeIo(task, result => result.Item1, result => result.Item2); if (mdlFile != null) FinalizeImport(mdlFile); - }); + }, TaskScheduler.Default); } /// Finalise the import of a .mdl, applying any post-import transformations and state updates. diff --git a/Penumbra/UI/AdvancedWindow/ModEditWindow.Textures.cs b/Penumbra/UI/AdvancedWindow/ModEditWindow.Textures.cs index 71c64059..652ecb49 100644 --- a/Penumbra/UI/AdvancedWindow/ModEditWindow.Textures.cs +++ b/Penumbra/UI/AdvancedWindow/ModEditWindow.Textures.cs @@ -255,7 +255,7 @@ public partial class ModEditWindow return; _framework.RunOnFrameworkThread(() => tex.Reload(_textures)); - }); + }, TaskScheduler.Default); } private Vector2 GetChildWidth() diff --git a/Penumbra/UI/AdvancedWindow/ModEditWindow.cs b/Penumbra/UI/AdvancedWindow/ModEditWindow.cs index afa846b5..72dd91d3 100644 --- a/Penumbra/UI/AdvancedWindow/ModEditWindow.cs +++ b/Penumbra/UI/AdvancedWindow/ModEditWindow.cs @@ -326,7 +326,7 @@ public partial class ModEditWindow : Window, IDisposable else if (ImGuiUtil.DrawDisabledButton("Re-Duplicate and Normalize Mod", Vector2.Zero, tt, !_allowReduplicate && !modifier)) { _editor.ModNormalizer.Normalize(Mod!); - _editor.ModNormalizer.Worker.ContinueWith(_ => _editor.LoadMod(Mod!, _editor.GroupIdx, _editor.OptionIdx)); + _editor.ModNormalizer.Worker.ContinueWith(_ => _editor.LoadMod(Mod!, _editor.GroupIdx, _editor.OptionIdx), TaskScheduler.Default); } if (!_editor.Duplicates.Worker.IsCompleted) diff --git a/Penumbra/UI/CollectionTab/IndividualAssignmentUi.cs b/Penumbra/UI/CollectionTab/IndividualAssignmentUi.cs index a0e35cff..fd8f9b25 100644 --- a/Penumbra/UI/CollectionTab/IndividualAssignmentUi.cs +++ b/Penumbra/UI/CollectionTab/IndividualAssignmentUi.cs @@ -33,7 +33,7 @@ public class IndividualAssignmentUi : IDisposable _actors = actors; _collectionManager = collectionManager; _communicator.CollectionChange.Subscribe(UpdateIdentifiers, CollectionChange.Priority.IndividualAssignmentUi); - _actors.Awaiter.ContinueWith(_ => SetupCombos()); + _actors.Awaiter.ContinueWith(_ => SetupCombos(), TaskScheduler.Default); } public string PlayerTooltip { get; private set; } = NewPlayerTooltipEmpty;