From 68922c1eebf9dfe6a77df4ff404143b86dc923c0 Mon Sep 17 00:00:00 2001 From: asayre Date: Sat, 11 Feb 2012 04:36:54 +0000 Subject: [PATCH] Moving World.SaveOption to StandardSaveStrategy.SaveOption, as it's only used and applicable there. Setting Dynamic Save Strategy to run whenever there are more than two cores. --- Server/Persistence/SaveStrategy.cs | 11 +++++++---- Server/Persistence/StandardSaveStrategy.cs | 10 +++++++++- Server/World.cs | 6 ------ 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/Server/Persistence/SaveStrategy.cs b/Server/Persistence/SaveStrategy.cs index 6d91da9b7..b16a607d2 100644 --- a/Server/Persistence/SaveStrategy.cs +++ b/Server/Persistence/SaveStrategy.cs @@ -31,14 +31,17 @@ namespace Server { int processorCount = Core.ProcessorCount; +#if Framework_4_0 + if (processorCount > 2) + { + return new DynamicSaveStrategy(); + } +#else if (processorCount > 16) { -#if Framework_4_0 - return new DynamicSaveStrategy(); -#else return new ParallelSaveStrategy(processorCount); -#endif } +#endif else { return new DualSaveStrategy(); diff --git a/Server/Persistence/StandardSaveStrategy.cs b/Server/Persistence/StandardSaveStrategy.cs index a7374a757..3da337299 100644 --- a/Server/Persistence/StandardSaveStrategy.cs +++ b/Server/Persistence/StandardSaveStrategy.cs @@ -30,6 +30,14 @@ using Server.Guilds; namespace Server { public class StandardSaveStrategy : SaveStrategy { + public enum SaveOption + { + Normal, + Threaded + } + + public static SaveOption SaveType = SaveOption.Normal; + public override string Name { get { return "Standard"; } } @@ -43,7 +51,7 @@ namespace Server { protected bool PermitBackgroundWrite { get { return _permitBackgroundWrite; } set { _permitBackgroundWrite = value; } } - protected bool UseSequentialWriters { get { return (World.SaveType == World.SaveOption.Normal || !_permitBackgroundWrite); } } + protected bool UseSequentialWriters { get { return (StandardSaveStrategy.SaveType == SaveOption.Normal || !_permitBackgroundWrite); } } public override void Save(SaveMetrics metrics, bool permitBackgroundWrite) { diff --git a/Server/World.cs b/Server/World.cs index e8ad5384d..d7f8d4cae 100644 --- a/Server/World.cs +++ b/Server/World.cs @@ -33,12 +33,6 @@ using Server.Guilds; namespace Server { public static class World { - public enum SaveOption { - Normal, - Threaded - } - - public static SaveOption SaveType = SaveOption.Normal; private static Dictionary m_Mobiles; private static Dictionary m_Items;