diff --git a/MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs b/MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs index 78dcea493..c2551731f 100644 --- a/MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs +++ b/MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs @@ -121,12 +121,12 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks { if (_lastExecutionResult == null) { + var path = GetHistoryFilePath(); + lock (_lastExecutionResultSyncLock) { if (_lastExecutionResult == null) { - var path = GetHistoryFilePath(); - try { return JsonSerializer.DeserializeFromFile(path); @@ -152,6 +152,14 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks private set { _lastExecutionResult = value; + + var path = GetHistoryFilePath(); + Directory.CreateDirectory(Path.GetDirectoryName(path)); + + lock (_lastExecutionResultSyncLock) + { + JsonSerializer.SerializeToFile(value, path); + } } } @@ -582,11 +590,6 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks result.LongErrorMessage = ex.StackTrace; } - var path = GetHistoryFilePath(); - Directory.CreateDirectory(Path.GetDirectoryName(path)); - - JsonSerializer.SerializeToFile(result, path); - LastExecutionResult = result; ((TaskManager)TaskManager).OnTaskCompleted(this, result);