diff --git a/TGServerService/DreamDaemon.cs b/TGServerService/DreamDaemon.cs index d8eb9d48f5..d740173e89 100644 --- a/TGServerService/DreamDaemon.cs +++ b/TGServerService/DreamDaemon.cs @@ -189,21 +189,16 @@ namespace TGServerService { if (DaemonStatus() == TGDreamDaemonStatus.Offline) return Start(); - if (!Monitor.TryEnter(restartLock)) - return "Restart already in progress"; - try + lock(restartLock) { - SendMessage("DD: Hard restart triggered", ChatMessageType.WatchdogInfo); - RestartInProgress = true; - Stop(); - var res = Start(); - return res; - } - finally - { - RestartInProgress = false; - Monitor.Exit(restartLock); + if (RestartInProgress) + return "Restart already in progress"; } + SendMessage("DD: Hard restart triggered", ChatMessageType.WatchdogInfo); + RestartInProgress = true; + Stop(); + var res = Start(); + return res; } //loop that keeps the server running