add optional restart save timeout
This commit is contained in:
@@ -34,6 +34,7 @@ namespace Torch
|
|||||||
string LoginToken { get; set; }
|
string LoginToken { get; set; }
|
||||||
UpdateSource UpdateSource { get; set; }
|
UpdateSource UpdateSource { get; set; }
|
||||||
List<string> Packages { get; set; }
|
List<string> Packages { get; set; }
|
||||||
|
int RestartSaveTimeout { get; set; }
|
||||||
|
|
||||||
void Save(string path = null);
|
void Save(string path = null);
|
||||||
}
|
}
|
||||||
|
@@ -121,6 +121,9 @@ public class TorchConfig : ViewModel, ITorchConfig
|
|||||||
|
|
||||||
[Display(Name = "Packages", Description = "Packages to install and use.", GroupName = "Server")]
|
[Display(Name = "Packages", Description = "Packages to install and use.", GroupName = "Server")]
|
||||||
public List<string> Packages { get; set; } = new();
|
public List<string> Packages { get; set; } = new();
|
||||||
|
|
||||||
|
[Display(Name = "Restart Save Timeout", Description = "Timeout for save operation on restart in seconds.", GroupName = "Server")]
|
||||||
|
public int RestartSaveTimeout { get; set; }
|
||||||
|
|
||||||
// for backward compatibility
|
// for backward compatibility
|
||||||
public void Save(string path = null) => Initializer.Instance?.ConfigPersistent?.Save(path);
|
public void Save(string path = null) => Initializer.Instance?.ConfigPersistent?.Save(path);
|
||||||
|
@@ -248,7 +248,8 @@ namespace Torch.Server
|
|||||||
{
|
{
|
||||||
if (save)
|
if (save)
|
||||||
{
|
{
|
||||||
var saveResult = Save(exclusive: true).Result;
|
var saveResult = Save(Config.RestartSaveTimeout == 0 ? -1 : Config.RestartSaveTimeout,
|
||||||
|
exclusive: true).Result;
|
||||||
if (saveResult is not (GameSaveResult.Success or GameSaveResult.TimedOut))
|
if (saveResult is not (GameSaveResult.Success or GameSaveResult.TimedOut))
|
||||||
{
|
{
|
||||||
Log.Error("Save failed due to {Reason}. Restart aborted!", saveResult);
|
Log.Error("Save failed due to {Reason}. Restart aborted!", saveResult);
|
||||||
|
Reference in New Issue
Block a user