Merge pull request #80 from TorchAPI/shutdown-crash-fix

Check if thread is running before suspending
This commit is contained in:
John Gross
2017-08-22 01:31:02 -04:00
committed by GitHub

View File

@@ -30,6 +30,7 @@ using VRage.Library;
using VRage.ObjectBuilders;
using VRage.Plugins;
using VRage.Utils;
#pragma warning disable 618
namespace Torch.Server
@@ -182,6 +183,7 @@ namespace Torch.Server
if (!mre.WaitOne(TimeSpan.FromSeconds(Instance.Config.TickTimeout)))
{
var mainThread = MySandboxGame.Static.UpdateThread;
if (mainThread.IsAlive)
mainThread.Suspend();
var stackTrace = new StackTrace(mainThread, true);
throw new TimeoutException($"Server watchdog detected that the server was frozen for at least {((TorchServer)state).Config.TickTimeout} seconds.\n{stackTrace}");