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>>)