diff --git a/ICD.Common.Utils.Tests/SafeCriticalSectionTest.cs b/ICD.Common.Utils.Tests/SafeCriticalSectionTest.cs index 0485cdd..3c764d0 100644 --- a/ICD.Common.Utils.Tests/SafeCriticalSectionTest.cs +++ b/ICD.Common.Utils.Tests/SafeCriticalSectionTest.cs @@ -32,6 +32,9 @@ namespace ICD.Common.Utils.Tests [Test] public void LeaveTest() { + SafeCriticalSection section = new SafeCriticalSection(); + Assert.DoesNotThrow(() => section.Leave()); + Assert.Inconclusive(); } diff --git a/ICD.Common.Utils/SafeCriticalSection.Standard.cs b/ICD.Common.Utils/SafeCriticalSection.Standard.cs index 9c14105..7b460a6 100644 --- a/ICD.Common.Utils/SafeCriticalSection.Standard.cs +++ b/ICD.Common.Utils/SafeCriticalSection.Standard.cs @@ -20,7 +20,8 @@ namespace ICD.Common.Utils /// public void Leave() { - Monitor.Exit(this); + if (Monitor.IsEntered(this)) + Monitor.Exit(this); } ///