diff --git a/Torch.API/Session/GameSaveResult.cs b/Torch.API/Session/GameSaveResult.cs index 836f884..3ce8d81 100644 --- a/Torch.API/Session/GameSaveResult.cs +++ b/Torch.API/Session/GameSaveResult.cs @@ -33,6 +33,11 @@ /// /// The save operation timed out /// - TimedOut = -5 + TimedOut = -5, + + /// + /// Another save operation is in progress + /// + ConcurrentSaveInProgress = -6 } } \ No newline at end of file diff --git a/Torch.Server/TorchServer.cs b/Torch.Server/TorchServer.cs index 2fb9c90..4626633 100644 --- a/Torch.Server/TorchServer.cs +++ b/Torch.Server/TorchServer.cs @@ -248,7 +248,7 @@ namespace Torch.Server { if (save) { - var saveResult = Save().Result; + var saveResult = Save(exclusive: true).Result; if (saveResult is not (GameSaveResult.Success or GameSaveResult.TimedOut)) { Log.Error("Save failed due to {Reason}. Restart aborted!", saveResult); diff --git a/Torch/TorchBase.cs b/Torch/TorchBase.cs index 4f833ce..1430bd1 100644 --- a/Torch/TorchBase.cs +++ b/Torch/TorchBase.cs @@ -330,7 +330,7 @@ namespace Torch if (MyAsyncSaving.InProgress || _inProgressSaves > 0) { Log.Error("Failed to save game, game is already saving"); - return null; + return Task.FromResult(GameSaveResult.ConcurrentSaveInProgress); } }