Syntax:
BLOCK(<node name>);It stops the creation of events in the node. Those events that would activate the node and are already in the FEL are put in suspended state (their SU parameters are set TRUE) so that they are not executed although their execution time are less than TIME. If the node to block is already blocked nothing is done. When the event state is changed again to active state (see DEBLOCK, 7.6) the delayed events are executed at the actual time.
This procedure can be used in nodes of any type.
Example:
Arrivals (I) :: IT := Farr(TIME); IF LL(EL_Entrance) > 8 THEN BLOCK(Arrivals); Entrance :: RELEASE BEGIN SENDTO(Parking) LL(EL_Reception) < 5 THEN DEBLOCK(Arrivals); END; STAY := TicketTime;Messages (cars) are generated at irregular times given by the function
Farr(TIME)
. When a queue of 9 is formed at the parking
Entrance
the generation is
stopped (the scheduled next arrival is suspended) until the queue is
less than 5.
See DEBLOCK procedure (7.6) for another example.