From 7ab4a3f2834894d42eee0fa988156171ed5910b7 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Wed, 9 Oct 2024 16:31:42 +0200 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=A7=B5=20added=20threadsafety=20to=20?= =?UTF-8?q?Dispose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Cuemon.Core/Disposable.cs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Cuemon.Core/Disposable.cs b/src/Cuemon.Core/Disposable.cs index 49c800546..64fac7a34 100644 --- a/src/Cuemon.Core/Disposable.cs +++ b/src/Cuemon.Core/Disposable.cs @@ -9,6 +9,8 @@ namespace Cuemon /// public abstract class Disposable : IDisposable { + private readonly object _lock = new(); + /// /// Gets a value indicating whether this object is disposed. /// @@ -43,12 +45,16 @@ public void Dispose() protected void Dispose(bool disposing) { if (Disposed) { return; } - if (disposing) + lock (_lock) { - OnDisposeManagedResources(); + if (Disposed) { return; } + if (disposing) + { + OnDisposeManagedResources(); + } + OnDisposeUnmanagedResources(); + Disposed = true; } - OnDisposeUnmanagedResources(); - Disposed = true; } } -} \ No newline at end of file +} From 0597bdd24119169c192a9ea0888e782b2afbb4dd Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Wed, 9 Oct 2024 16:32:15 +0200 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=97=91=EF=B8=8F=20housekeeping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 35ecf174e..1bab1e4df 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,6 @@ Provides a focused API for building various types of .NET projects. | [Cuemon.Diagnostics](https://www.nuget.org/packages/Cuemon.Diagnostics/) | ![vNext](https://img.shields.io/nuget/vpre/Cuemon.Diagnostics?logo=nuget) | ![Stable](https://img.shields.io/nuget/v/Cuemon.Diagnostics?logo=nuget) | ![Downloads](https://img.shields.io/nuget/dt/Cuemon.Diagnostics?color=blueviolet&logo=nuget) | | [Cuemon.Extensions.AspNetCore](https://www.nuget.org/packages/Cuemon.Extensions.AspNetCore/) | ![vNext](https://img.shields.io/nuget/vpre/Cuemon.Extensions.AspNetCore?logo=nuget) | ![Stable](https://img.shields.io/nuget/v/Cuemon.Extensions.AspNetCore?logo=nuget) | ![Downloads](https://img.shields.io/nuget/dt/Cuemon.Extensions.AspNetCore?color=blueviolet&logo=nuget) | | [Cuemon.Extensions.AspNetCore.Authentication](https://www.nuget.org/packages/Cuemon.Extensions.AspNetCore.Authentication/) | ![vNext](https://img.shields.io/nuget/vpre/Cuemon.Extensions.AspNetCore.Authentication?logo=nuget) | ![Stable](https://img.shields.io/nuget/v/Cuemon.Extensions.AspNetCore.Authentication?logo=nuget) | ![Downloads](https://img.shields.io/nuget/dt/Cuemon.Extensions.AspNetCore.Authentication?color=blueviolet&logo=nuget) | -| [Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4](https://www.nuget.org/packages/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/) | ![vNext](https://img.shields.io/nuget/vpre/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4?logo=nuget) | ![Stable](https://img.shields.io/nuget/v/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4?logo=nuget) | ![Downloads](https://img.shields.io/nuget/dt/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4?color=blueviolet&logo=nuget) | | [Cuemon.Extensions.AspNetCore.Mvc](https://www.nuget.org/packages/Cuemon.Extensions.AspNetCore.Mvc/) | ![vNext](https://img.shields.io/nuget/vpre/Cuemon.Extensions.AspNetCore.Mvc?logo=nuget) | ![Stable](https://img.shields.io/nuget/v/Cuemon.Extensions.AspNetCore.Mvc?logo=nuget) | ![Downloads](https://img.shields.io/nuget/dt/Cuemon.Extensions.AspNetCore.Mvc?color=blueviolet&logo=nuget) | | [Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json](https://www.nuget.org/packages/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json/) | ![vNext](https://img.shields.io/nuget/vpre/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json?logo=nuget) | ![Stable](https://img.shields.io/nuget/v/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json?logo=nuget) | ![Downloads](https://img.shields.io/nuget/dt/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json?color=blueviolet&logo=nuget) | | [Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml](https://www.nuget.org/packages/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml/) | ![vNext](https://img.shields.io/nuget/vpre/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml?logo=nuget) | ![Stable](https://img.shields.io/nuget/v/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml?logo=nuget) | ![Downloads](https://img.shields.io/nuget/dt/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml?color=blueviolet&logo=nuget) | From 69250ff3b16a1a3967e982f2ab79b957fc8ead1c Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Wed, 9 Oct 2024 16:42:53 +0200 Subject: [PATCH 3/3] :arrow_up: bump dependencies to support .net9-rc2 --- Directory.Build.props | 2 +- .../Cuemon.Extensions.DependencyInjection.csproj | 6 +++--- .../Cuemon.Extensions.Hosting.csproj | 4 ++-- src/Cuemon.Extensions.Net/Cuemon.Extensions.Net.csproj | 4 ++-- .../Cuemon.Extensions.Text.Json.csproj | 4 ++-- .../Cuemon.AspNetCore.Authentication.Tests.csproj | 2 +- .../Cuemon.AspNetCore.FunctionalTests.csproj | 2 +- .../Cuemon.AspNetCore.Mvc.FunctionalTests.csproj | 2 +- .../Cuemon.AspNetCore.Mvc.Tests.csproj | 2 +- .../Cuemon.AspNetCore.Razor.TagHelpers.Tests.csproj | 2 +- .../Cuemon.AspNetCore.Tests.csproj | 2 +- .../Cuemon.Data.SqlClient.Tests.csproj | 2 +- test/Cuemon.Data.Tests/Cuemon.Data.Tests.csproj | 8 ++++---- ...emon.Extensions.AspNetCore.Authentication.Tests.csproj | 2 +- ...sions.AspNetCore.Mvc.Formatters.Text.Json.Tests.csproj | 2 +- ....Extensions.AspNetCore.Mvc.Formatters.Xml.Tests.csproj | 2 +- ...emon.Extensions.AspNetCore.Mvc.RazorPages.Tests.csproj | 2 +- .../Cuemon.Extensions.AspNetCore.Mvc.Tests.csproj | 2 +- .../Cuemon.Extensions.AspNetCore.Tests.csproj | 2 +- .../Cuemon.Extensions.Hosting.Tests.csproj | 2 +- .../Cuemon.Extensions.Runtime.Caching.Tests.csproj | 2 +- .../Cuemon.Runtime.Caching.Tests.csproj | 2 +- testenvironments.json | 2 +- 23 files changed, 31 insertions(+), 31 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index c4e067fb7..1079ae37d 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -93,7 +93,7 @@ - + diff --git a/src/Cuemon.Extensions.DependencyInjection/Cuemon.Extensions.DependencyInjection.csproj b/src/Cuemon.Extensions.DependencyInjection/Cuemon.Extensions.DependencyInjection.csproj index d9a293599..c3f4a637f 100644 --- a/src/Cuemon.Extensions.DependencyInjection/Cuemon.Extensions.DependencyInjection.csproj +++ b/src/Cuemon.Extensions.DependencyInjection/Cuemon.Extensions.DependencyInjection.csproj @@ -10,12 +10,12 @@ - - + + - + diff --git a/src/Cuemon.Extensions.Hosting/Cuemon.Extensions.Hosting.csproj b/src/Cuemon.Extensions.Hosting/Cuemon.Extensions.Hosting.csproj index 884330859..c6ccc632f 100644 --- a/src/Cuemon.Extensions.Hosting/Cuemon.Extensions.Hosting.csproj +++ b/src/Cuemon.Extensions.Hosting/Cuemon.Extensions.Hosting.csproj @@ -10,11 +10,11 @@ - + - + diff --git a/src/Cuemon.Extensions.Net/Cuemon.Extensions.Net.csproj b/src/Cuemon.Extensions.Net/Cuemon.Extensions.Net.csproj index 20b7be272..ce1610d1e 100644 --- a/src/Cuemon.Extensions.Net/Cuemon.Extensions.Net.csproj +++ b/src/Cuemon.Extensions.Net/Cuemon.Extensions.Net.csproj @@ -10,11 +10,11 @@ - + - + diff --git a/src/Cuemon.Extensions.Text.Json/Cuemon.Extensions.Text.Json.csproj b/src/Cuemon.Extensions.Text.Json/Cuemon.Extensions.Text.Json.csproj index c67b19fba..b55759920 100644 --- a/src/Cuemon.Extensions.Text.Json/Cuemon.Extensions.Text.Json.csproj +++ b/src/Cuemon.Extensions.Text.Json/Cuemon.Extensions.Text.Json.csproj @@ -16,11 +16,11 @@ - + - + diff --git a/test/Cuemon.AspNetCore.Authentication.Tests/Cuemon.AspNetCore.Authentication.Tests.csproj b/test/Cuemon.AspNetCore.Authentication.Tests/Cuemon.AspNetCore.Authentication.Tests.csproj index 92862df87..6c81d0ab3 100644 --- a/test/Cuemon.AspNetCore.Authentication.Tests/Cuemon.AspNetCore.Authentication.Tests.csproj +++ b/test/Cuemon.AspNetCore.Authentication.Tests/Cuemon.AspNetCore.Authentication.Tests.csproj @@ -14,7 +14,7 @@ - + diff --git a/test/Cuemon.AspNetCore.FunctionalTests/Cuemon.AspNetCore.FunctionalTests.csproj b/test/Cuemon.AspNetCore.FunctionalTests/Cuemon.AspNetCore.FunctionalTests.csproj index b808adde8..67ba24356 100644 --- a/test/Cuemon.AspNetCore.FunctionalTests/Cuemon.AspNetCore.FunctionalTests.csproj +++ b/test/Cuemon.AspNetCore.FunctionalTests/Cuemon.AspNetCore.FunctionalTests.csproj @@ -7,7 +7,7 @@ - + diff --git a/test/Cuemon.AspNetCore.Mvc.FunctionalTests/Cuemon.AspNetCore.Mvc.FunctionalTests.csproj b/test/Cuemon.AspNetCore.Mvc.FunctionalTests/Cuemon.AspNetCore.Mvc.FunctionalTests.csproj index 5091af1ec..1042a620b 100644 --- a/test/Cuemon.AspNetCore.Mvc.FunctionalTests/Cuemon.AspNetCore.Mvc.FunctionalTests.csproj +++ b/test/Cuemon.AspNetCore.Mvc.FunctionalTests/Cuemon.AspNetCore.Mvc.FunctionalTests.csproj @@ -7,7 +7,7 @@ - + diff --git a/test/Cuemon.AspNetCore.Mvc.Tests/Cuemon.AspNetCore.Mvc.Tests.csproj b/test/Cuemon.AspNetCore.Mvc.Tests/Cuemon.AspNetCore.Mvc.Tests.csproj index fdaceeee0..5a751cc71 100644 --- a/test/Cuemon.AspNetCore.Mvc.Tests/Cuemon.AspNetCore.Mvc.Tests.csproj +++ b/test/Cuemon.AspNetCore.Mvc.Tests/Cuemon.AspNetCore.Mvc.Tests.csproj @@ -16,7 +16,7 @@ - + diff --git a/test/Cuemon.AspNetCore.Razor.TagHelpers.Tests/Cuemon.AspNetCore.Razor.TagHelpers.Tests.csproj b/test/Cuemon.AspNetCore.Razor.TagHelpers.Tests/Cuemon.AspNetCore.Razor.TagHelpers.Tests.csproj index 0339b469a..4907c7de9 100644 --- a/test/Cuemon.AspNetCore.Razor.TagHelpers.Tests/Cuemon.AspNetCore.Razor.TagHelpers.Tests.csproj +++ b/test/Cuemon.AspNetCore.Razor.TagHelpers.Tests/Cuemon.AspNetCore.Razor.TagHelpers.Tests.csproj @@ -12,7 +12,7 @@ - + diff --git a/test/Cuemon.AspNetCore.Tests/Cuemon.AspNetCore.Tests.csproj b/test/Cuemon.AspNetCore.Tests/Cuemon.AspNetCore.Tests.csproj index c3855b397..78a83f058 100644 --- a/test/Cuemon.AspNetCore.Tests/Cuemon.AspNetCore.Tests.csproj +++ b/test/Cuemon.AspNetCore.Tests/Cuemon.AspNetCore.Tests.csproj @@ -15,7 +15,7 @@ - + diff --git a/test/Cuemon.Data.SqlClient.Tests/Cuemon.Data.SqlClient.Tests.csproj b/test/Cuemon.Data.SqlClient.Tests/Cuemon.Data.SqlClient.Tests.csproj index 48d1ffb39..d06f1d798 100644 --- a/test/Cuemon.Data.SqlClient.Tests/Cuemon.Data.SqlClient.Tests.csproj +++ b/test/Cuemon.Data.SqlClient.Tests/Cuemon.Data.SqlClient.Tests.csproj @@ -13,7 +13,7 @@ - + diff --git a/test/Cuemon.Data.Tests/Cuemon.Data.Tests.csproj b/test/Cuemon.Data.Tests/Cuemon.Data.Tests.csproj index 1564a0fc0..71303432e 100644 --- a/test/Cuemon.Data.Tests/Cuemon.Data.Tests.csproj +++ b/test/Cuemon.Data.Tests/Cuemon.Data.Tests.csproj @@ -26,15 +26,15 @@ - + - + - + @@ -57,7 +57,7 @@ - + diff --git a/test/Cuemon.Extensions.AspNetCore.Authentication.Tests/Cuemon.Extensions.AspNetCore.Authentication.Tests.csproj b/test/Cuemon.Extensions.AspNetCore.Authentication.Tests/Cuemon.Extensions.AspNetCore.Authentication.Tests.csproj index a01a3b64e..2b768b62f 100644 --- a/test/Cuemon.Extensions.AspNetCore.Authentication.Tests/Cuemon.Extensions.AspNetCore.Authentication.Tests.csproj +++ b/test/Cuemon.Extensions.AspNetCore.Authentication.Tests/Cuemon.Extensions.AspNetCore.Authentication.Tests.csproj @@ -13,7 +13,7 @@ - + diff --git a/test/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json.Tests/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json.Tests.csproj b/test/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json.Tests/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json.Tests.csproj index 0c38f8efa..a4d35ef2b 100644 --- a/test/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json.Tests/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json.Tests.csproj +++ b/test/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json.Tests/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json.Tests.csproj @@ -11,7 +11,7 @@ - + diff --git a/test/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml.Tests/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml.Tests.csproj b/test/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml.Tests/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml.Tests.csproj index 76cedbe7a..b4f1d4429 100644 --- a/test/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml.Tests/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml.Tests.csproj +++ b/test/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml.Tests/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml.Tests.csproj @@ -11,7 +11,7 @@ - + diff --git a/test/Cuemon.Extensions.AspNetCore.Mvc.RazorPages.Tests/Cuemon.Extensions.AspNetCore.Mvc.RazorPages.Tests.csproj b/test/Cuemon.Extensions.AspNetCore.Mvc.RazorPages.Tests/Cuemon.Extensions.AspNetCore.Mvc.RazorPages.Tests.csproj index 24527a0cc..3fce3f080 100644 --- a/test/Cuemon.Extensions.AspNetCore.Mvc.RazorPages.Tests/Cuemon.Extensions.AspNetCore.Mvc.RazorPages.Tests.csproj +++ b/test/Cuemon.Extensions.AspNetCore.Mvc.RazorPages.Tests/Cuemon.Extensions.AspNetCore.Mvc.RazorPages.Tests.csproj @@ -11,7 +11,7 @@ - + diff --git a/test/Cuemon.Extensions.AspNetCore.Mvc.Tests/Cuemon.Extensions.AspNetCore.Mvc.Tests.csproj b/test/Cuemon.Extensions.AspNetCore.Mvc.Tests/Cuemon.Extensions.AspNetCore.Mvc.Tests.csproj index 2140b16f2..e42af0a35 100644 --- a/test/Cuemon.Extensions.AspNetCore.Mvc.Tests/Cuemon.Extensions.AspNetCore.Mvc.Tests.csproj +++ b/test/Cuemon.Extensions.AspNetCore.Mvc.Tests/Cuemon.Extensions.AspNetCore.Mvc.Tests.csproj @@ -13,7 +13,7 @@ - + diff --git a/test/Cuemon.Extensions.AspNetCore.Tests/Cuemon.Extensions.AspNetCore.Tests.csproj b/test/Cuemon.Extensions.AspNetCore.Tests/Cuemon.Extensions.AspNetCore.Tests.csproj index 37a6b3bd0..723a4d5b5 100644 --- a/test/Cuemon.Extensions.AspNetCore.Tests/Cuemon.Extensions.AspNetCore.Tests.csproj +++ b/test/Cuemon.Extensions.AspNetCore.Tests/Cuemon.Extensions.AspNetCore.Tests.csproj @@ -17,7 +17,7 @@ - + diff --git a/test/Cuemon.Extensions.Hosting.Tests/Cuemon.Extensions.Hosting.Tests.csproj b/test/Cuemon.Extensions.Hosting.Tests/Cuemon.Extensions.Hosting.Tests.csproj index 0e28ed459..c5c4fb80b 100644 --- a/test/Cuemon.Extensions.Hosting.Tests/Cuemon.Extensions.Hosting.Tests.csproj +++ b/test/Cuemon.Extensions.Hosting.Tests/Cuemon.Extensions.Hosting.Tests.csproj @@ -9,7 +9,7 @@ - + diff --git a/test/Cuemon.Extensions.Runtime.Caching.Tests/Cuemon.Extensions.Runtime.Caching.Tests.csproj b/test/Cuemon.Extensions.Runtime.Caching.Tests/Cuemon.Extensions.Runtime.Caching.Tests.csproj index de31ed191..9ca10b451 100644 --- a/test/Cuemon.Extensions.Runtime.Caching.Tests/Cuemon.Extensions.Runtime.Caching.Tests.csproj +++ b/test/Cuemon.Extensions.Runtime.Caching.Tests/Cuemon.Extensions.Runtime.Caching.Tests.csproj @@ -9,7 +9,7 @@ - + \ No newline at end of file diff --git a/test/Cuemon.Runtime.Caching.Tests/Cuemon.Runtime.Caching.Tests.csproj b/test/Cuemon.Runtime.Caching.Tests/Cuemon.Runtime.Caching.Tests.csproj index 6a3ffb647..f0b35a7bd 100644 --- a/test/Cuemon.Runtime.Caching.Tests/Cuemon.Runtime.Caching.Tests.csproj +++ b/test/Cuemon.Runtime.Caching.Tests/Cuemon.Runtime.Caching.Tests.csproj @@ -15,7 +15,7 @@ - + \ No newline at end of file diff --git a/testenvironments.json b/testenvironments.json index b5827e2ef..d39afbf25 100644 --- a/testenvironments.json +++ b/testenvironments.json @@ -9,7 +9,7 @@ { "name": "Docker-Ubuntu", "type": "docker", - "dockerImage": "gimlichael/ubuntu-testrunner:net6.0.425-net8.0.401-9.0.100-rc.1.24452.12" + "dockerImage": "gimlichael/ubuntu-testrunner:net6.0.427-net8.0.403-9.0.100-rc.2.24474.11" } ] }