Release
Returns a unit to a resource pool as an entity passes. Input and output.
How it works#
The Release returns one unit of a Resource Pool for each entity that passes through, and the entity carries on at once. The returned unit goes straight to the entity that has waited longest for the pool, if any is waiting. An entity that holds no unit of that pool passes unchanged, and units it holds of other pools are left alone. An entity that took several units of the pool returns one of them at each Release.
A Release is optional. Without one, every unit an entity holds returns when the entity leaves the model, whether it completed or was dropped anywhere, so a unit can never leak. Use a Release when the unit should be free before the entity has finished: a connection held only around the database call, for example, with more work to do after it. Everything between the Acquire and the Release is done holding the unit.
A Release is wired like an Acquire: it is passive on its input and active on its output. So it can follow a generator, a server, a delay, a router, a shared server, an Acquire or another Release, and hand on to a queue, a delay, a router, a shared server, an Acquire or another Release. A queue cannot feed it directly, and a server cannot pull from it: put a queue between them. Several components can connect into its one input.
A Release must have an incoming connection and a pool: a run will not start while it is not connected to any source or has no pool chosen. Its outgoing side is optional: with nothing connected, entities count as completed and leave the model. A Release does not wait at a full queue: an entity the queue has no room for is dropped at once.
A Release reports no statistics of its own: it has no charts and no batch results. What it returns shows in the pool's units in use and time a unit is held.
Settings#
- Poola Resource Pool on the canvas
- The Resource Pool the Release returns a unit to, chosen from the pools on the canvas. Its name is shown under the node.
The pool cannot be changed while the simulation runs.