Expand description
Asynchronous 9P2000.L client.
§Reconnection
Fids and byte-range locks are connection-scoped. The client records their replay state, reconnects with backoff, and restores that state before releasing blocked requests. Reorder-sensitive mutations retain one op-id across resends. Resends stop at the protocol retry horizon; expiry returns a disconnect error with an ambiguous outcome.
An op-id is local to one public mutation future and is not reusable after the future completes or is cancelled.
Dropping a future after a fid- or lock-state request is dispatched retires the connection that carried it. If that connection is still current, requests wait for reconnect and replay before resuming.
The negotiated message size is fixed for the logical session. Reconnect candidates must negotiate the same value.
Replay restores recorded fids and locks before the replacement connection
becomes live. An opened fid that no longer exists becomes an ESTALE
tombstone; its operations fail without affecting other fids. Failure to
restore a held lock terminates the logical session.
Structs§
- NineP
Client - Readdir
State - Readdir paging state.
- Setattr
Builder - Builds a
Tsetattr;Nonefields remain unchanged. - Traffic
Stats - Cumulative wire traffic for this logical client across reconnects.
Enums§
- Client
Error - Setattr
Time - A time to set: the server’s clock, or an explicit instant.
- Target
- A 9P endpoint. Multi-target clients probe for the serving leader.
Constants§
- NOFID
- The 9P sentinel for an absent fid, including an unauthenticated
Tattach.afid.
Traits§
- DirEntry
Cookie - An entry type with a 9P readdir cookie.