### QUEUE

The QUEUE module is used to model a waiting space before a SELECT or hold type module (ACCESS, ALLOCATE, COMBINE, GROUP, PREEMPT, PROCEED, REQUEST, SCAN, SEIZE or WAIT). The QUEUE module may have a finite capacity and entities which arrive after the limit has been reached are sent to the balk label.

Blockages are used to 'block' upstream processes controlling entity arrival at the queue.

Prompt | Valid Entry | Default
Queue ID | Queue number or name | -
Capacity | Expression truncated to an integer | Infinite
Balk label | Module label to which the balked entity is to be sent | Dispose the entity
Blockage level | Expression truncated to an integer | None
Blockage | ID Blockage number or name | None

Examples

Prompt | Value
Queue ID | 2
Capacity | 15
Balk label | rejectjobs

When the capacity of queue number 2 exceeds 15 entities any further arriving entities are sent to the module with label 'rejectjobs'

Prompt | Value
Queue ID | partbuffer
Blockage level | NQ(partbuffer)+NE(process) > 4
Blockage ID | Noroom

A queue named 'partbuffer' sets blockage 'Noroom' when the number in the queue (NQ) plus the number of entities en route (NE) exceeds 4. The blockage would be defined upstream with the 'BLOCK' module. The en route values can only be evaluated if a 'STATION' module preceeds the queue module