From 2200b94a6c9f9004b43a71b7fc2321e43f7110da Mon Sep 17 00:00:00 2001 From: Xjph Date: Sun, 29 May 2022 21:57:57 -0230 Subject: [PATCH] Manually trigger Lua GC periodically. --- ObservatoryExplorer/CustomCriteriaManager.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/ObservatoryExplorer/CustomCriteriaManager.cs b/ObservatoryExplorer/CustomCriteriaManager.cs index e412538..df222ca 100644 --- a/ObservatoryExplorer/CustomCriteriaManager.cs +++ b/ObservatoryExplorer/CustomCriteriaManager.cs @@ -13,12 +13,13 @@ namespace Observatory.Explorer private Lua LuaState; private List CriteriaFunctions; Action ErrorLogger; - + private uint ScanCount; public CustomCriteriaManager(Action errorLogger) { ErrorLogger = errorLogger; CriteriaFunctions = new(); + ScanCount = 0; } public void RefreshCriteria(string criteriaPath) @@ -191,7 +192,8 @@ namespace Observatory.Explorer public List<(string, string, bool)> CheckInterest(Scan scan, Dictionary> scanHistory, Dictionary> signalHistory, ExplorerSettings settings) { List<(string, string, bool)> results = new(); - + ScanCount++; + foreach (var criteriaFunction in CriteriaFunctions) { var scanList = scanHistory[scan.SystemAddress].Values.ToList(); @@ -255,9 +257,20 @@ namespace Observatory.Explorer } } + if (ScanCount > 99) + { + ScanCount = 0; + LuaGC(); + } + return results; } + private void LuaGC() + { + LuaState.DoString("collectgarbage()"); + } + internal class Parent { public string ParentType;