diff --git a/.editorconfig b/.editorconfig index 9d428510c..5edaaa607 100644 --- a/.editorconfig +++ b/.editorconfig @@ -111,7 +111,6 @@ dotnet_diagnostic.ca1028.severity = silent dotnet_diagnostic.ca1031.severity = silent # TODO - one at a time -dotnet_diagnostic.ca2002.severity = silent dotnet_diagnostic.ca3003.severity = silent dotnet_diagnostic.ca3012.severity = silent dotnet_diagnostic.ca3075.severity = silent diff --git a/ArchiSteamFarm.CustomPlugins.PeriodicGC/PeriodicGCPlugin.cs b/ArchiSteamFarm.CustomPlugins.PeriodicGC/PeriodicGCPlugin.cs index 55ed9e2f8..4d8c0dffa 100644 --- a/ArchiSteamFarm.CustomPlugins.PeriodicGC/PeriodicGCPlugin.cs +++ b/ArchiSteamFarm.CustomPlugins.PeriodicGC/PeriodicGCPlugin.cs @@ -32,6 +32,7 @@ namespace ArchiSteamFarm.CustomPlugins.PeriodicGC { internal sealed class PeriodicGCPlugin : IPlugin { private const byte GCPeriod = 60; // In seconds + private static readonly object LockObject = new(); private static readonly Timer PeriodicGCTimer = new(PerformGC); public string Name => nameof(PeriodicGCPlugin); @@ -43,7 +44,7 @@ namespace ArchiSteamFarm.CustomPlugins.PeriodicGC { ASF.ArchiLogger.LogGenericWarning("Periodic GC will occur every " + timeSpan.ToHumanReadable() + ". Please keep in mind that this plugin should be used for debugging tests only."); - lock (PeriodicGCTimer) { + lock (LockObject) { PeriodicGCTimer.Change(timeSpan, timeSpan); } } @@ -51,7 +52,7 @@ namespace ArchiSteamFarm.CustomPlugins.PeriodicGC { private static void PerformGC(object? state) { ASF.ArchiLogger.LogGenericWarning("Performing GC, current memory: " + (GC.GetTotalMemory(false) / 1024) + " KB."); - lock (PeriodicGCTimer) { + lock (LockObject) { GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce; GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced, true, true); } diff --git a/ArchiSteamFarm.OfficialPlugins.SteamTokenDumper/SteamTokenDumperPlugin.cs b/ArchiSteamFarm.OfficialPlugins.SteamTokenDumper/SteamTokenDumperPlugin.cs index d340d0984..536c905e4 100644 --- a/ArchiSteamFarm.OfficialPlugins.SteamTokenDumper/SteamTokenDumperPlugin.cs +++ b/ArchiSteamFarm.OfficialPlugins.SteamTokenDumper/SteamTokenDumperPlugin.cs @@ -129,7 +129,7 @@ namespace ArchiSteamFarm.OfficialPlugins.SteamTokenDumper { TimeSpan startIn = TimeSpan.FromMinutes(Utilities.RandomNext(SharedInfo.MinimumMinutesBeforeFirstUpload, SharedInfo.MaximumMinutesBeforeFirstUpload)); - lock (SubmissionTimer) { + lock (SubmissionSemaphore) { SubmissionTimer.Change(startIn, TimeSpan.FromHours(SharedInfo.MinimumHoursBetweenUploads)); } @@ -533,7 +533,7 @@ namespace ArchiSteamFarm.OfficialPlugins.SteamTokenDumper { #endif TimeSpan startIn = TimeSpan.FromMinutes(Utilities.RandomNext(SharedInfo.MinimumMinutesBeforeFirstUpload, SharedInfo.MaximumMinutesBeforeFirstUpload)); - lock (SubmissionTimer) { + lock (SubmissionSemaphore) { SubmissionTimer.Change(startIn, TimeSpan.FromHours(SharedInfo.MinimumHoursBetweenUploads)); } diff --git a/ArchiSteamFarm/SteamPICSChanges.cs b/ArchiSteamFarm/SteamPICSChanges.cs index b57d0f41d..1040663e6 100644 --- a/ArchiSteamFarm/SteamPICSChanges.cs +++ b/ArchiSteamFarm/SteamPICSChanges.cs @@ -46,7 +46,7 @@ namespace ArchiSteamFarm { return; } - lock (RefreshTimer) { + lock (RefreshSemaphore) { if (TimerAlreadySet) { return; }