summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/SMAPI/Framework/Logging/LogManager.cs14
-rw-r--r--src/SMAPI/Framework/SCore.cs7
2 files changed, 11 insertions, 10 deletions
diff --git a/src/SMAPI/Framework/Logging/LogManager.cs b/src/SMAPI/Framework/Logging/LogManager.cs
index 094dd749..d83a5c0b 100644
--- a/src/SMAPI/Framework/Logging/LogManager.cs
+++ b/src/SMAPI/Framework/Logging/LogManager.cs
@@ -138,15 +138,15 @@ namespace StardewModdingAPI.Framework.Logging
Thread inputThread = new Thread(() =>
{
while (true)
- {
+ {
// get input
- string input = Console.ReadLine();
- if (string.IsNullOrWhiteSpace(input))
- continue;
+ string input = Console.ReadLine();
+ if (string.IsNullOrWhiteSpace(input))
+ continue;
- // handle command
- this.Monitor.LogUserInput(input);
- handleInput(input);
+ // handle command
+ this.Monitor.LogUserInput(input);
+ handleInput(input);
}
});
inputThread.Start();
diff --git a/src/SMAPI/Framework/SCore.cs b/src/SMAPI/Framework/SCore.cs
index e64c2801..e2a9463b 100644
--- a/src/SMAPI/Framework/SCore.cs
+++ b/src/SMAPI/Framework/SCore.cs
@@ -278,15 +278,16 @@ namespace StardewModdingAPI.Framework
);
// add exit handler
- new Thread(() =>
+ this.CancellationToken.Token.Register(() =>
{
- this.CancellationToken.Token.WaitHandle.WaitOne();
if (this.IsGameRunning)
{
+ this.inputThread.Abort();
this.LogManager.WriteCrashLog();
this.Game.Exit();
}
- }).Start();
+ });
+
// set window titles
this.SetWindowTitles(