From ab07ac0389e323db62c2c3114a34ec3384678e22 Mon Sep 17 00:00:00 2001 From: benbierens Date: Thu, 4 May 2023 09:16:15 +0200 Subject: [PATCH] Fixes issue where multiple instances of ApplicaitonLifecycle are created. --- KubernetesWorkflow/ApplicationLifecycle.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/KubernetesWorkflow/ApplicationLifecycle.cs b/KubernetesWorkflow/ApplicationLifecycle.cs index 5289573..7d6fb3d 100644 --- a/KubernetesWorkflow/ApplicationLifecycle.cs +++ b/KubernetesWorkflow/ApplicationLifecycle.cs @@ -4,6 +4,7 @@ namespace KubernetesWorkflow { public class ApplicationLifecycle { + private static object instanceLock = new object(); private static ApplicationLifecycle? instance; private readonly NumberSource servicePortNumberSource = new NumberSource(30001); private readonly NumberSource namespaceNumberSource = new NumberSource(0); @@ -18,8 +19,11 @@ namespace KubernetesWorkflow // and persists for the entire application lifecycle. get { - if (instance == null) instance = new ApplicationLifecycle(); - return instance; + lock (instanceLock) + { + if (instance == null) instance = new ApplicationLifecycle(); + return instance; + } } }