F_<node>
) and subtracting the value of USE to the used
capacity (variable U_<node>
). This resource freeing can be
inhibited if a NOTFREE procedure appears
in the associated instruction of the RELEASE instruction. This is used
in applications in which some items abandon the resource, but
this requires an additional time to be available again. The
freeing is made elsewhere by a FREE procedure at a latter time.STAY := <expression>
instruction.
The required amount of resource (USE field) is compared with
the available resource (F_<node>
variable). If USE is greater
than F_<node>
, the message remains in the EL and the scanning
of the EL continues. Otherwise, the message is extracted, the event of
its future departing is scheduled (if there was an STAY instruction)
and the message is added at the end of the IL.F_<node>
) and adding the value of USE
to the used capacity (variable U_<node>
).
The scan of the EL continues to look for other candidates to use
the resource.
If there is not STAY instruction and one message enters the IL,
no departing event is generated. The message will remain in the IL
until it is extracted by an instruction REL (see 6.18), that refers
to the IL of the node. It extracts the first message without
assigned exit time; it updates the quantity of free and used resource
and it sends the message to the desired node. Example:
IF F_Parking > 0 THEN STAY := LOGNORMAL(TPark, DTPark)
avoids to compute the STAY if there is no room in Parking.