From 6f7e2b7ab4c0e2c4aff3b70ee499e3507c51282a Mon Sep 17 00:00:00 2001 From: Masataka SUMI Date: Thu, 14 Oct 2021 19:33:41 +0900 Subject: [PATCH] Fix infinite loop --- .../IO/Runtime/AwaitCaller/TinyManagedTaskScheduler.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Assets/VRMShaders/GLTF/IO/Runtime/AwaitCaller/TinyManagedTaskScheduler.cs b/Assets/VRMShaders/GLTF/IO/Runtime/AwaitCaller/TinyManagedTaskScheduler.cs index 2f96cc5ef..e6fc0c5ee 100644 --- a/Assets/VRMShaders/GLTF/IO/Runtime/AwaitCaller/TinyManagedTaskScheduler.cs +++ b/Assets/VRMShaders/GLTF/IO/Runtime/AwaitCaller/TinyManagedTaskScheduler.cs @@ -9,6 +9,8 @@ namespace VRMShaders { private readonly ConcurrentQueue<(Action, Func)> _continuationQueue = new ConcurrentQueue<(Action, Func)>(); + private readonly ConcurrentQueue<(Action, Func)> _temporaryQueue = + new ConcurrentQueue<(Action, Func)>(); public void ManagedUpdate() { @@ -22,9 +24,14 @@ namespace VRMShaders } else { - _continuationQueue.Enqueue(tuple); + _temporaryQueue.Enqueue(tuple); } } + + while (_temporaryQueue.TryDequeue(out var tuple)) + { + _continuationQueue.Enqueue(tuple); + } } public void Enqueue(Action continuation, Func canExecute)