# Class type Uq_engines.prioritizer_t

    class type ['a] prioritizer_t = object .. end

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 `p`. The engine `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 `e` does.