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;