seize Zone
open suspend fun seizeZone(space: GuidedPathSpace, zone: Zone, queue: HoldQueue, requestPriority: Int = QUEUE_PRIORITY, suspensionName: String? = null, onOverlap: ZoneOverlap = ZoneOverlap.RAISE): ZoneAllocation(source)
Takes a zone, waiting for whatever is in it to leave, and suspends until the zone is held.
Nothing is evicted. Whatever vehicle is crossing the zone finishes crossing and leaves in its own time, and only then does this entity have the zone -- which is why this suspends at all. A zone that was already empty is granted inside the call and the process does not suspend.
Return
the hold, which names the zone and when the hold began
Parameters
space
the guide path whose space is wanted
zone
the zone to take, which must be on that guide path
queue
where to wait while the zone drains
request Priority
orders this entity against others queued at the same instant
suspension Name
names this suspension point when a process has several