From 57fd2c0c0d84951b91c80cfcc11d932f99a9830a Mon Sep 17 00:00:00 2001 From: PopSlime Date: Sun, 6 Nov 2022 00:55:56 +0800 Subject: [PATCH] Add lock for input proxy. --- Assets/Cryville/Crtr/InputProxy.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Assets/Cryville/Crtr/InputProxy.cs b/Assets/Cryville/Crtr/InputProxy.cs index 02a99cb..8003511 100644 --- a/Assets/Cryville/Crtr/InputProxy.cs +++ b/Assets/Cryville/Crtr/InputProxy.cs @@ -102,10 +102,13 @@ namespace Cryville.Crtr { #region Handling public void Activate() { foreach (var src in _sproxies.Keys) src.Handler.Activate(); } public void Deactivate() { foreach (var src in _sproxies.Keys) src.Handler.Deactivate(); } + readonly object _lock = new object(); void OnInput(InputIdentifier id, InputVector vec) { - InputProxyEntry proxy; - if (_sproxies.TryGetValue(id.Source, out proxy)) { - OnInput(id, vec, proxy.Target); + lock (_lock) { + InputProxyEntry proxy; + if (_sproxies.TryGetValue(id.Source, out proxy)) { + OnInput(id, vec, proxy.Target); + } } } static readonly int _var_value = IdentifierManager.SharedInstance.Request("value");