A prioritizer allows to prioritize the execution of engines: At any
time, only engines of a certain priority
p can be executed. If an
engine with a higher priority
ph wants to start, it prevents further
engines with priority level
p from being started until the higher
prioritized engines with level
ph are done. On the same priority level,
there is no limit for the number of executed engines.
Here, higher priorities have lower numbers.
method prioritized :
(Unixqueue.event_system -> 'a engine) ->
int -> 'a engine
let pe = prioritized f p: Queues up
f on priority level
e = f esys can start when there is no waiting
engine on a higher priority level (i.e. with a number less than
p), and all running engines on lower priority levels are done.
pe enters a final state when