diff --git a/Dalamud/Interface/Internal/TextureLoadThrottler.cs b/Dalamud/Interface/Internal/TextureLoadThrottler.cs index 978d7b9b7..043906782 100644 --- a/Dalamud/Interface/Internal/TextureLoadThrottler.cs +++ b/Dalamud/Interface/Internal/TextureLoadThrottler.cs @@ -16,8 +16,8 @@ internal class TextureLoadThrottler : IServiceType, IDisposable private readonly Task adderTask; private readonly Task[] workerTasks; - private readonly Channel newItemChannel = Channel.CreateUnbounded(); - private readonly Channel workTokenChannel = Channel.CreateUnbounded(); + private readonly Channel newItemChannel; + private readonly Channel workTokenChannel; private readonly List workItemPending = new(); private bool disposing; @@ -25,6 +25,9 @@ internal class TextureLoadThrottler : IServiceType, IDisposable [ServiceManager.ServiceConstructor] private TextureLoadThrottler() { + this.newItemChannel = Channel.CreateUnbounded(new() { SingleReader = true }); + this.workTokenChannel = Channel.CreateUnbounded(new() { SingleWriter = true }); + this.adderTask = Task.Run(this.LoopAddWorkItemAsync); this.workerTasks = new Task[Math.Max(1, Environment.ProcessorCount - 1)]; foreach (ref var task in this.workerTasks.AsSpan())