Expand description
IPC Port : a kernel-managed message queue with blocking send/recv.
Each port has a bounded FIFO queue of IpcMessages. Senders block if
the queue is full; receivers block if it’s empty. The scheduler’s
block/wake API (via WaitQueue) provides the blocking mechanism.
Structs§
- Port
- An IPC port: a bounded message queue with blocking semantics.
- PortId
- Unique identifier for an IPC port.
Enums§
Constants§
- PORT_
QUEUE_ 🔒CAPACITY - Maximum number of messages buffered in a single port.
Statics§
- NEXT_
PORT_ 🔒ID - Next port ID to assign.
- PORTS 🔒
- Global registry of all live ports.
Functions§
- cleanup_
ports_ for_ task - Clean up all ports owned by a dying task.
- create_
port - Create a new port owned by
owner. Returns the new port’s ID. - destroy_
port - Destroy a port, removing it from the registry and waking all waiters.
- ensure_
registry 🔒 - Ensure the registry is initialized (called lazily).
- get_
port - Look up a port by ID. Returns a cloned
Arc<Port>if found.