From 07dc6ea0b3dc808b616a2057c3c15c5b68547997 Mon Sep 17 00:00:00 2001 From: CWX Date: Tue, 14 Jan 2025 14:22:07 +0000 Subject: [PATCH] fix locking for concurrency --- Core/Utils/ImporterUtil.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Core/Utils/ImporterUtil.cs b/Core/Utils/ImporterUtil.cs index 953253be..4bc42269 100644 --- a/Core/Utils/ImporterUtil.cs +++ b/Core/Utils/ImporterUtil.cs @@ -33,6 +33,7 @@ public class ImporterUtil ) { var tasks = new List(); + var dictionaryLock = new object(); var result = Activator.CreateInstance(loadedType); // get all filepaths @@ -63,8 +64,11 @@ public class ImporterUtil if (onObjectDeserialized != null) onObjectDeserialized(file, fileDeserialized); - setMethod.Invoke(result, - isDictionary ? [_fileUtil.StripExtension(file), fileDeserialized] : [fileDeserialized]); + lock (dictionaryLock) + { + setMethod.Invoke(result, + isDictionary ? [_fileUtil.StripExtension(file), fileDeserialized] : [fileDeserialized]); + } } catch (Exception e) { @@ -77,7 +81,6 @@ public class ImporterUtil // deep tree search foreach (var directory in directories) { - var dictionaryLock = new object(); tasks.Add( Task.Factory.StartNew(() => {