From 6fd7d5dda5720b508845ebf105d21f6a62b7682a Mon Sep 17 00:00:00 2001 From: annabunches Date: Tue, 11 Feb 2025 14:00:28 -0500 Subject: [PATCH] Make sure Enumerator resources get cleaned up. --- AirMonitor/AirZone.cs | 1 + Mixins/Sequencer/Sequencer.cs | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/AirMonitor/AirZone.cs b/AirMonitor/AirZone.cs index 8251ccc..cf88a24 100644 --- a/AirMonitor/AirZone.cs +++ b/AirMonitor/AirZone.cs @@ -96,6 +96,7 @@ namespace IngameScript _program.Runtime.UpdateFrequency |= UpdateFrequency.Once; yield return true; } + job.Dispose(); while (Triggered) yield return true; diff --git a/Mixins/Sequencer/Sequencer.cs b/Mixins/Sequencer/Sequencer.cs index 6d1627f..29847d8 100644 --- a/Mixins/Sequencer/Sequencer.cs +++ b/Mixins/Sequencer/Sequencer.cs @@ -12,16 +12,16 @@ namespace IngameScript public class Sequencer { public bool Running { get; private set; } + public string Name { get; private set; } private IConsole _console; - private string _name; private SortedDictionary> _sequence = new SortedDictionary>(); public Sequencer(IConsoleProgram program, string name) { - _name = name; - _console = new PrefixedConsole(program.Console, _name); + Name = name; + _console = new PrefixedConsole(program.Console, Name); } public void AddBlock(ISequenceable block) @@ -66,6 +66,7 @@ namespace IngameScript } yield return true; } + foreach (IEnumerator subJob in subJobs) subJob.Dispose(); // clean up after ourselves } } }