For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /max/get-started.md).
Mojo struct
ProducerStage
struct ProducerStage[pipeline_origin: MutOrigin, num_stages: Int]
Unified handle for producing to a pipeline stage.
Works as both a linear type (direct use) and within context managers.
Lifecycle:
- Created via
pipeline.acquire_producer()or context manager - Use
index()andmbar()for production - Must call
release()to advance stage (compiler-enforced)
Parametersβ
- βpipeline_origin (
MutOrigin): Origin of the pipeline reference. - βnum_stages (
Int): Number of pipeline stages.
Fieldsβ
- βpipeline (
Pointer[ProducerConsumerPipeline[num_stages], pipeline_origin]):
Implemented traitsβ
Methodsβ
__init__β
__init__(out self, pipeline: Pointer[ProducerConsumerPipeline[num_stages], pipeline_origin], index: UInt32, mbar: UnsafePointer[SharedMemBarrier, MutAnyOrigin, address_space=AddressSpace.SHARED])
indexβ
mbarβ
mbar(self) -> MbarPtr
Get the barrier to signal when production is complete.
Caller is responsible for signaling via mma_arrive or similar.
Returns:
MbarPtr
releaseβ
release(deinit self)
Advance producer to next stage.
This is the only way to destroy this linear type. The compiler will error if you don't call this.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!