Fix: CloseLogFile() Thread safety

This commit is contained in:
ChsBuffer
2021-05-04 10:17:33 +08:00
parent 00268d67fa
commit 9a8c4d6093

View File

@@ -199,15 +199,22 @@ namespace Netch.Controllers
_logStreamWriter!.WriteLine(line);
}
private readonly object LogStreamLock = new();
private void CloseLogFile()
{
if (!RedirectToFile)
return;
_flushFileStreamTimer.Enabled = false;
_logStreamWriter?.Close();
_logFileStream?.Close();
_logStreamWriter = _logStreamWriter = null;
if (_logFileStream == null)
return;
lock (LogStreamLock)
{
_flushFileStreamTimer.Enabled = false;
_logStreamWriter?.Close();
_logFileStream?.Close();
_logStreamWriter = _logStreamWriter = null;
}
}
#endregion