From dcec2932661702dfa092cdf9f9022d65864d85f1 Mon Sep 17 00:00:00 2001 From: "harald.martini@student.tugraz.at" <harald.martini@student.tugraz.at> Date: Wed, 13 Oct 2021 10:20:03 +0200 Subject: [PATCH] added kernel lock in SImulatorFactory --- .../Simulation/Impl/SimulatorFactory/SimulatorFactory.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs index c9970582d1..ef74447118 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs @@ -61,6 +61,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory public abstract class SimulatorFactory : LoggingObject, ISimulatorFactory { private static int _jobNumberCounter; + + private static object _kernelLock = new object(); private static IKernel _kernel; //Kernel is only used when the SimulatorFactory is created with the Factory Method. protected Func<ISimulatorFactory> _followingSimulatorFactoryCreator = null; @@ -80,7 +82,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory [Obsolete("Creation of new SimulatorFactories should be done with SimulatorFactoryFactory NInject Factory", false)] public static ISimulatorFactory CreateSimulatorFactory(ExecutionMode mode, IInputDataProvider dataProvider, IOutputDataWriter writer, IDeclarationReport declarationReport = null, IVTPReport vtpReport=null, bool validate = true) { - lock (_kernel) { + lock (_kernelLock) { if (_kernel == null) { _kernel = new StandardKernel(new VectoNinjectModule()); } @@ -119,7 +121,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory public SummaryDataContainer SumData { get; set; } - public abstract IOutputDataWriter ReportWriter { get; protected set; } + public IOutputDataWriter ReportWriter { get; protected set; } public int JobNumber { get; set; } -- GitLab