/// <summary> /// Remove a trigger from current triggers or pending insertion /// triggers or both if need be, so it's not there anymore at all. /// </summary> /// <param name="trigger"></param> public void RemoveTrigger(TriggerInfo trigger) { Triggers.RemoveAll((item) => item.Equals(trigger)); // can ignore if it wasn't in the list. TriggersToInsert.RemoveAll((item) => item.Equals(trigger)); // can ignore if it wasn't in the list. }
/// <summary> /// Take only those pending triggers that AddPendingTrigger added who's /// Priority is higher than the given value, and make them become active. /// ("active" here means "called on the callstack like a subroutine.") /// </summary> /// <param name="aboveThis"></param> public void ActivatePendingTriggersAbovePriority(InterruptPriority aboveThis) { Triggers.AddRange(TriggersToInsert.FindAll(t => t.Priority > aboveThis)); TriggersToInsert.RemoveAll(t => t.Priority > aboveThis); }