def __call__(self, interval, link): firstEvent = eg.event # wait for the first event to release firstEvent.shouldEnd.wait(10.0) waitEvent = Event() waitEvent.wasSameEvent = False def EventFilter(event): if event.string == firstEvent.string: waitEvent.wasSameEvent = True waitEvent.secondEvent = event waitEvent.set() return True else: waitEvent.set() eg.eventThread.AddFilter(firstEvent.source, EventFilter) waitEvent.wait(interval) eg.eventThread.RemoveFilter(firstEvent.source, EventFilter) if waitEvent.isSet() and waitEvent.wasSameEvent: nextItem = link.target nextIndex = nextItem.parent.GetChildIndex(nextItem) eg.programCounter = (nextItem, nextIndex) eg.event = waitEvent.secondEvent