(v13) Timeline priorities
This page applies to Harlequin v13.1r0 and later; and to Harlequin MultiRIP but not Harlequin Core
A timeline represents something that has a finite lifetime and when you create a timeline an event is issued. You can do various things with the timeline, and then when you end the timeline another event is issued to say that it has ended. However, because we have a hierarchy it is possible that other parties have created timelines that are connected to this timeline, children of this timeline. When a timeline is ended the children of that timeline will either continue or end according to the priority given to the timeline when it is created. If a child of a timeline has the same or higher priority as its parent, ending the parent timeline does not cause it to end yet, it will automatically be prolonged until its child has ended.
However, if the child is a lower priority, ending the parent timeline will automatically end the child timeline.
Assuming there are no other the same or higher priority children that are going to prolong the parent timeline, the next thing that happens is that the timeline system issues an event called “ending” (TL_STATE_ENDING
) which allows other systems to object to the timeline ending and to prolong it. This means that, in effect, any entity that has a timeline that represents its lifetime automatically gains a method by which a negotiation can take place about whether that entity is finished with it or not.
For an example see Currently available timelines .