From 03278e67e06f478aa2eb967f94eddf445b9b7339 Mon Sep 17 00:00:00 2001 From: Nicholas Blumhardt Date: Sat, 9 Jul 2022 08:09:54 +1000 Subject: [PATCH 1/2] Switch to the VS2022 build worker and .NET 6 SDK --- appveyor.yml | 2 +- global.json | 2 +- .../Extensions/Hosting/ReloadableLogger.cs | 8 ++++++-- .../Serilog.Extensions.Hosting.Tests.csproj | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index adf6f87..27bd2ea 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,6 +1,6 @@ version: '{build}' skip_tags: true -image: Visual Studio 2019 +image: Visual Studio 2022 test: off build_script: - ps: ./Build.ps1 diff --git a/global.json b/global.json index 28db99e..d56cd08 100644 --- a/global.json +++ b/global.json @@ -1,7 +1,7 @@ { "sdk": { "allowPrerelease": false, - "version": "5.0.409", + "version": "6.0.301", "rollForward": "latestFeature" } } diff --git a/src/Serilog.Extensions.Hosting/Extensions/Hosting/ReloadableLogger.cs b/src/Serilog.Extensions.Hosting/Extensions/Hosting/ReloadableLogger.cs index 5c95a55..6ec1d37 100644 --- a/src/Serilog.Extensions.Hosting/Extensions/Hosting/ReloadableLogger.cs +++ b/src/Serilog.Extensions.Hosting/Extensions/Hosting/ReloadableLogger.cs @@ -368,9 +368,13 @@ public bool BindProperty(string propertyName, object value, bool destructureObje [MethodImpl(MethodImplOptions.AggressiveInlining)] (ILogger, bool) UpdateForCaller(ILogger root, ILogger cached, IReloadableLogger caller, out ILogger newRoot, out ILogger newCached, out bool frozen) { + // Synchronization on `_sync` is not required in this method; it will be called without a lock + // if `_frozen` and under a lock if not. + if (_frozen) { - // If we're frozen, then the caller hasn't observed this yet and should update. + // If we're frozen, then the caller hasn't observed this yet and should update. We could optimize a little here + // and only signal an update if the cached logger is stale (as per the next condition below). newRoot = _logger; newCached = caller.ReloadLogger(); frozen = true; @@ -384,7 +388,7 @@ public bool BindProperty(string propertyName, object value, bool destructureObje frozen = false; return (cached, false); } - + newRoot = _logger; newCached = caller.ReloadLogger(); frozen = false; diff --git a/test/Serilog.Extensions.Hosting.Tests/Serilog.Extensions.Hosting.Tests.csproj b/test/Serilog.Extensions.Hosting.Tests/Serilog.Extensions.Hosting.Tests.csproj index 1601189..c964995 100644 --- a/test/Serilog.Extensions.Hosting.Tests/Serilog.Extensions.Hosting.Tests.csproj +++ b/test/Serilog.Extensions.Hosting.Tests/Serilog.Extensions.Hosting.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp3.1;net5.0;net4.8 + netcoreapp3.1;net6.0;net4.8 Serilog.Extensions.Hosting.Tests ../../assets/Serilog.snk true From 3af92b5efe224378224a85c7ff8dbc51280c6b6d Mon Sep 17 00:00:00 2001 From: Nicholas Blumhardt Date: Sat, 9 Jul 2022 08:13:48 +1000 Subject: [PATCH 2/2] Target 6.0.300, roll forwards --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index d56cd08..af5a328 100644 --- a/global.json +++ b/global.json @@ -1,7 +1,7 @@ { "sdk": { "allowPrerelease": false, - "version": "6.0.301", + "version": "6.0.300", "rollForward": "latestFeature" } }