From 24ca4edab77e08b81146cf338f13a8735fbaa390 Mon Sep 17 00:00:00 2001 From: Flamefire Date: Sun, 9 Mar 2014 19:49:06 +0100 Subject: [PATCH] Make Logfile more thread save --- Vocaluxe/Base/CLog.cs | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/Vocaluxe/Base/CLog.cs b/Vocaluxe/Base/CLog.cs index 6f87a74c..2dd153f0 100644 --- a/Vocaluxe/Base/CLog.cs +++ b/Vocaluxe/Base/CLog.cs @@ -28,6 +28,7 @@ namespace Vocaluxe.Base private readonly string _LogFileName; private readonly string _LogName; private StreamWriter _LogFile; + private Object _FileMutex = new Object(); public CLogFile(string fileName, string logName) { @@ -37,23 +38,31 @@ namespace Vocaluxe.Base private void _Open() { - _LogFile = new StreamWriter(Path.Combine(CSettings.DataPath, _LogFileName), false, Encoding.UTF8); + lock (_FileMutex) + { + if (_LogFile != null) + return; + _LogFile = new StreamWriter(Path.Combine(CSettings.DataPath, _LogFileName), false, Encoding.UTF8); - _LogFile.WriteLine(_LogName + " " + CSettings.GetFullVersionText() + " " + DateTime.Now); - _LogFile.WriteLine("----------------------------------------"); - _LogFile.WriteLine(); + _LogFile.WriteLine(_LogName + " " + CSettings.GetFullVersionText() + " " + DateTime.Now); + _LogFile.WriteLine("----------------------------------------"); + _LogFile.WriteLine(); + } } public void Close() { - if (_LogFile == null) - return; - try + lock (_FileMutex) { - _LogFile.Flush(); - _LogFile.Close(); + if (_LogFile == null) + return; + try + { + _LogFile.Flush(); + _LogFile.Close(); + } + catch (Exception) {} } - catch (Exception) {} } public void Add(string text)