pub type SelectReceivers = DynamicReceivers<ActorId, ()>;
Aliased Type§
pub struct SelectReceivers {
barrier: Option<BarrierInner<()>>,
blocked: Vec<Pin<Box<dyn Input<InputId = u32, Item = Result<MessageInner<()>, StreamExecutorError>>>>>,
active: FuturesUnordered<StreamFuture<Pin<Box<dyn Input<InputId = u32, Item = Result<MessageInner<()>, StreamExecutorError>>>>>>,
buffered_watermarks: BTreeMap<usize, BufferedWatermarks<u32>>,
barrier_align_duration: Option<LabelGuardedMetric<GenericCounter<AtomicU64>>>,
merge_barrier_align_duration: Option<LabelGuardedMetric<Histogram>>,
}
Fields§
§barrier: Option<BarrierInner<()>>
The barrier we’re aligning to. If this is None
, then blocked_upstreams
is empty.
blocked: Vec<Pin<Box<dyn Input<InputId = u32, Item = Result<MessageInner<()>, StreamExecutorError>>>>>
The upstreams that’re blocked by the barrier
.
active: FuturesUnordered<StreamFuture<Pin<Box<dyn Input<InputId = u32, Item = Result<MessageInner<()>, StreamExecutorError>>>>>>
The upstreams that’re not blocked and can be polled.
buffered_watermarks: BTreeMap<usize, BufferedWatermarks<u32>>
watermark column index -> BufferedWatermarks
barrier_align_duration: Option<LabelGuardedMetric<GenericCounter<AtomicU64>>>
Currently only used for union.
merge_barrier_align_duration: Option<LabelGuardedMetric<Histogram>>
Only for merge. If None, then we don’t take Instant::now()
and observe
during poll_next