From 718764e533b26d049313b9e9185f42f6fec547bb Mon Sep 17 00:00:00 2001 From: Deathmax Date: Mon, 4 Jul 2011 17:32:49 +0800 Subject: [PATCH] More race conditions. --- TShockAPI/BackupManager.cs | 4 ++++ TShockAPI/TShock.cs | 15 ++++----------- TShockAPI/Tools.cs | 1 - 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/TShockAPI/BackupManager.cs b/TShockAPI/BackupManager.cs index 0dfd5c1c..a6a1cf13 100644 --- a/TShockAPI/BackupManager.cs +++ b/TShockAPI/BackupManager.cs @@ -68,9 +68,13 @@ namespace TShockAPI Directory.CreateDirectory(worldpath); Tools.Broadcast("Server map saving, potential lag spike"); + Console.WriteLine("Backing up world..."); Thread SaveWorld = new Thread(Tools.SaveWorld); SaveWorld.Start(); + while (SaveWorld.ThreadState == ThreadState.Running) + Thread.Sleep(50); + Main.worldPathName = worldname; } catch (Exception ex) diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index b1031aaa..4a6b2df5 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -49,8 +49,6 @@ namespace TShockAPI public static IDbConnection Sql; - public static bool WorldSaving = false; - public override Version Version { get { return VersionNum; } @@ -540,15 +538,10 @@ namespace TShockAPI private void OnSaveWorld(bool resettime, HandledEventArgs e) { - if (!WorldSaving) - { - WorldSaving = true; - Tools.Broadcast("Saving world, might lag.", Color.Red); - Thread SaveWorld = new Thread(Tools.SaveWorld); - SaveWorld.Start(); - WorldSaving = false; - e.Handled = true; - } + Tools.Broadcast("Saving world, might lag.", Color.Red); + Thread SaveWorld = new Thread(Tools.SaveWorld); + SaveWorld.Start(); + e.Handled = true; } /* diff --git a/TShockAPI/Tools.cs b/TShockAPI/Tools.cs index 9b48edcf..d4fa5aa7 100755 --- a/TShockAPI/Tools.cs +++ b/TShockAPI/Tools.cs @@ -109,7 +109,6 @@ namespace TShockAPI WorldGen.RealsaveWorld(); Broadcast("World saved.", Color.Yellow); - Console.WriteLine("World saved."); Log.Info(string.Format("World saved at ({0})", Main.worldPathName)); }