From 1ea26f1891d68e0879c09fc2c9ce1fa3f621d029 Mon Sep 17 00:00:00 2001 From: EvilFactory Date: Mon, 28 Nov 2022 16:49:11 -0300 Subject: [PATCH] Fix threading issue introduced by #117 once for all --- .../BarotraumaShared/SharedSource/Utils/ReflectionUtils.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Barotrauma/BarotraumaShared/SharedSource/Utils/ReflectionUtils.cs b/Barotrauma/BarotraumaShared/SharedSource/Utils/ReflectionUtils.cs index ee48a1eb3..552ccdc7a 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/Utils/ReflectionUtils.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/Utils/ReflectionUtils.cs @@ -16,9 +16,12 @@ namespace Barotrauma public static IEnumerable GetDerivedNonAbstract() { Assembly assembly = typeof(T).Assembly; - if (!cachedNonAbstractTypes.ContainsKey(assembly)) + lock (cachedNonAbstractTypes) { - AddNonAbstractAssemblyTypes(assembly); + if (!cachedNonAbstractTypes.ContainsKey(assembly)) + { + AddNonAbstractAssemblyTypes(assembly); + } } #warning TODO: Add safety checks in case an assembly is unloaded without being removed from the cache.