trySeizeZone

open suspend fun trySeizeZone(space: GuidedPathSpace, zone: Zone, queue: HoldQueue, requestPriority: Int = QUEUE_PRIORITY, suspensionName: String? = null): ZoneAllocation?(source)

Takes one zone unless it is already promised to another holder, in which case: null.

trySeizeZones with one zone. Null means an overlap -- another closure has been promised this zone and has not yet been granted it -- and is a question for the model rather than a failure. A zone another holder merely holds is not an overlap: this waits for the hold to end exactly as seizeZone would.

Return

the hold, or null when the zone is already promised to another holder

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 it drains

requestPriority

orders this entity against others queued at the same instant

suspensionName

names this suspension point when a process has several