Fix threading issue introduced by #117 once for all

This commit is contained in:
EvilFactory
2022-11-28 16:49:11 -03:00
parent 08f18e2e69
commit 1ea26f1891
@@ -16,9 +16,12 @@ namespace Barotrauma
public static IEnumerable<Type> GetDerivedNonAbstract<T>() public static IEnumerable<Type> GetDerivedNonAbstract<T>()
{ {
Assembly assembly = typeof(T).Assembly; 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. #warning TODO: Add safety checks in case an assembly is unloaded without being removed from the cache.