From 18b54ae2dd4c5c6c614a9c5a7b7ee0fcc35c9eaa Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Thu, 12 Oct 2017 13:00:21 -0400 Subject: [PATCH 1/3] Fixes double messages for hard restarts --- TGServerService/DreamDaemon.cs | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) 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 From 2a381de1788d82da49597715ccedc601d58ef405 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Thu, 12 Oct 2017 13:01:15 -0400 Subject: [PATCH 2/3] DewItRight --- TGServerService/DreamDaemon.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TGServerService/DreamDaemon.cs b/TGServerService/DreamDaemon.cs index d740173e89..42738b223e 100644 --- a/TGServerService/DreamDaemon.cs +++ b/TGServerService/DreamDaemon.cs @@ -193,9 +193,9 @@ namespace TGServerService { if (RestartInProgress) return "Restart already in progress"; + RestartInProgress = true; } SendMessage("DD: Hard restart triggered", ChatMessageType.WatchdogInfo); - RestartInProgress = true; Stop(); var res = Start(); return res; From 468d1d88e32b45055d53c9b26b028f958705a5a9 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Thu, 12 Oct 2017 13:03:20 -0400 Subject: [PATCH 3/3] DO IT RIGHT DAMMIT --- TGServerService/DreamDaemon.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/TGServerService/DreamDaemon.cs b/TGServerService/DreamDaemon.cs index 42738b223e..8242cfe74f 100644 --- a/TGServerService/DreamDaemon.cs +++ b/TGServerService/DreamDaemon.cs @@ -198,6 +198,11 @@ namespace TGServerService SendMessage("DD: Hard restart triggered", ChatMessageType.WatchdogInfo); Stop(); var res = Start(); + if(res != null) + lock(restartLock) + { + RestartInProgress = false; + } return res; }