Mojo struct
BarrierPair
struct BarrierPair[num_stages: Int]
Storage for a producer-consumer barrier pair (full + empty).
Each stage has two barriers:
- full[i]: Producer signals when stage i is filled
- empty[i]: Consumer signals when stage i is consumed
Parameters
- num_stages (
Int): Number of pipeline stages (ring buffer depth).
Fields
- storage (
BarrierPair[num_stages].Array.Storage):
Implemented traits
AnyType,
ImplicitlyDestructible
comptime members
__del__is_trivial
comptime __del__is_trivial = True
Array
comptime Array = SMemArray[SharedMemBarrier, (num_stages * 2)]
Methods
barriers
barriers(ref[AddressSpace._value._mlir_value] self) -> BarrierPair[num_stages].Array
Get barrier array accessor.
Returns:
BarrierPair
ptr
ptr(ref[AddressSpace._value._mlir_value] self) -> MbarPtr
Get raw barrier pointer for initialization or custom usage.
Returns:
MbarPtr
create_pipeline
create_pipeline(ref[AddressSpace._value._mlir_value] self) -> ProducerConsumerPipeline[num_stages]
Create a runtime pipeline from this barrier storage.
Returns:
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!