From 2e5fdc0b9902b2bc2ac116943350a304307cf20b Mon Sep 17 00:00:00 2001 From: Nicholas Blumhardt Date: Mon, 10 Oct 2016 09:10:45 +1000 Subject: [PATCH] Add missing synchronization around disposal of owned file streams --- src/Serilog.Sinks.File/Sinks/File/FileSink.cs | 8 +++++++- src/Serilog.Sinks.File/Sinks/File/SharedFileSink.cs | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Serilog.Sinks.File/Sinks/File/FileSink.cs b/src/Serilog.Sinks.File/Sinks/File/FileSink.cs index 610f9e7..443519a 100644 --- a/src/Serilog.Sinks.File/Sinks/File/FileSink.cs +++ b/src/Serilog.Sinks.File/Sinks/File/FileSink.cs @@ -93,7 +93,13 @@ public void Emit(LogEvent logEvent) } /// - public void Dispose() => _output.Dispose(); + public void Dispose() + { + lock (_syncRoot) + { + _output.Dispose(); + } + } /// public void FlushToDisk() diff --git a/src/Serilog.Sinks.File/Sinks/File/SharedFileSink.cs b/src/Serilog.Sinks.File/Sinks/File/SharedFileSink.cs index 113f608..bbb5142 100644 --- a/src/Serilog.Sinks.File/Sinks/File/SharedFileSink.cs +++ b/src/Serilog.Sinks.File/Sinks/File/SharedFileSink.cs @@ -146,7 +146,13 @@ public void Emit(LogEvent logEvent) /// - public void Dispose() => _fileOutput.Dispose(); + public void Dispose() + { + lock (_syncRoot) + { + _fileOutput.Dispose(); + } + } /// public void FlushToDisk()