Expand description
Async wrappers for the SPSC bridge.
These integrate the raw Producer/Consumer with Tokio’s async runtime
and the eventfd-based waker, providing async fn push() and async fn pop().
§Architecture
Tokio (Control Plane) TPC (Data Plane)
┌─────────────────────┐ ┌─────────────────────┐
│ AsyncProducer │ │ SyncConsumer │
│ .push(req).await │──push──→ │ .poll_drain() │
│ │ │ │
│ AsyncReceiver │ │ SyncSender │
│ .recv(rsp).await │←──pop──── │ .try_send(rsp) │
└─────────────────────┘ └─────────────────────┘The TPC side uses SyncConsumer/SyncSender (non-async, !Send-compatible).
The Tokio side uses AsyncProducer/AsyncReceiver which wrap try_push/try_pop
with eventfd-based waking.
Structs§
- Bridge
Channel - A complete bridge channel: request path (Control→Data) + response path (Data→Control).
- Control
Handle - Handle held by the Control Plane (Tokio).
- Data
Handle - Handle held by the Data Plane (TPC core).
- Pinned
Data Handle - A pinned Data Plane handle that is
!Send.