Skip to content

channel.select

← channel dialect

Wait for any ready incoming endpoint of a relation-bound channel and accept one record. The source rank identifies the producer in the channel's source group; the returned read owns that record until it is released or transferred.

Operation contract

Property Value
Semantic phase —
Traits MemoryFence
Memory effects readwrite channel
Ownership effects borrow channel (by_value), fresh read

Signature

Kind Name Type Cardinality Description
Operand channel any required —
Result source_rank index required —
Result read any required —

Examples

%source_rank, %read = channel.select %progress : channel<tile<1xi32>> -> (index, read<tile<1xi32>>)