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..af5a328 100644 --- a/global.json +++ b/global.json @@ -1,7 +1,7 @@ { "sdk": { "allowPrerelease": false, - "version": "5.0.409", + "version": "6.0.300", "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