Skip to main content

producer_build_enter

Function producer_build_enter 

Source
pub fn producer_build_enter()
Expand description

pub re-exports for the graphrefly-operators crate to wrap producer-internal sinks with the same IN_PRODUCER_BUILD flag the FiringGuard uses (per /qa N1(a) — operator sinks are operator-internal and SUPPRESS the H+ check, mirroring the activation-time carve-out). Not part of the v1 stable user API surface; intended for in-workspace consumers only. Phase H+ STRICT variant (the producer-architecture refactor) will eliminate the need for this carve-out. Increment the producer-build refcount. Called from FiringGuard::new ONLY for is_producer() nodes, AND from ProducerCtx::subscribe_to’s wrapped sink (so producer- internal sink callbacks also suppress the H+ check).

§Panics

Panics if the per-thread refcount would overflow u32::MAX. This indicates an unbounded recursion through producer build / sink dispatch — a real bug. Safer to surface than to silently saturate and disable the check or produce inverted Drop semantics. The protocol’s MAX_BATCH_DRAIN_ITERATIONS cap makes this overflow unreachable in practice.