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
parkonexecutor, waiting on the executor’s own wake object.