Skip to main content

Module port_park

Module port_park 

Source
Expand description

phase-436 W7 — installing a port’s park primitive, with the wake-object constraint stated once. Board entries reach it through this facade because that is the dependency they already carry.

Gated like every other executor:: re-export here, and it has to be: the module itself is #[cfg(any(has_rmw, test))], and has_rmw is emitted by nros-node’s build script exactly when CARGO_FEATURE_RMW_CFFI is set. An ungated pub use therefore names a module that does not exist wherever no RMW seam is compiled in — which is not a hypothetical configuration but the one nros build --metadata-mode uses, where it is error[E0432]: unresolved import before the harness reaches a single component. phase-436 W7 — installing a port’s park primitive, with the wake-object constraint stated once instead of per board. phase-436 W7 — installing a port’s park primitive, in one place.

Every Rust board entry that wires the seam needs the same three steps and the same non-obvious constraint, so they live here rather than being spelt once per board and drifting.

The constraint. A ParkUntilFn must wait on the executor’s OWN wake object. The backend’s listener signals that one, and spin_once drops its transport drain to non-blocking once a port has parked — so a park on any other object cannot be broken by data arriving, and sleeps out its full deadline with a message already waiting. That is worse than not parking at all, it passes every test, and it is invisible in a quiet run.

Functions§

install_port_park
Install park on executor, waiting on the executor’s own wake object.