waitForAnyItems

abstract suspend fun <T : ModelElement.QObject> waitForAnyItems(blockingQ: BlockingQueue<T>, predicate: (T) -> Boolean, blockingPriority: Int = PRIORITY, suspensionName: String? = null): List<T>

This method will block (suspend) until at least 1 item that meets the criteria is available within the blocking queue. If more than one is available, all items meeting the criteria will be returned.

Parameters

blockingQ

the blocking queue channel that has the items

predicate

a functional predicate that tests items in the queue for the criteria

blockingPriority

the priority associated with the entity if it has to wait to receive

suspensionName

the name of the suspension point. can be used to identify which receive suspension point the entity is experiencing if there are more than one receive suspension points within the process. The user is responsible for uniqueness.