refactor(client): share pollable async transactions #48

Merged
Lochnair merged 1 commits from refactor/async-client-poll-core into main 2026-08-04 13:10:04 +00:00
Lochnair commented 2026-08-04 13:05:41 +00:00 (Migrated from github.com)

Summary

Refactor AsyncClient transactions into crate-private poll methods so a future unified Tokio managed driver can poll connected clients directly without duplicating socket, readiness, cancellation, or commit logic.

  • Add owned AsyncOpenState with no AsyncClient references.
  • Extract poll_open, poll_send_probe, poll_recv, and poll_close.
  • Keep public async APIs unchanged as thin poll_fn wrappers.
  • Preserve cancellation, deadline, DSCP rollback, prepared-probe retention, and post-send commit ordering.

Validation

  • Tokio and all-feature checks, tests, and strict Clippy pass.
  • Focused cancellation/readiness/short-send regressions passed 10× each.
## Summary Refactor `AsyncClient` transactions into crate-private poll methods so a future unified Tokio managed driver can poll connected clients directly without duplicating socket, readiness, cancellation, or commit logic. - Add owned `AsyncOpenState` with no `AsyncClient` references. - Extract `poll_open`, `poll_send_probe`, `poll_recv`, and `poll_close`. - Keep public async APIs unchanged as thin `poll_fn` wrappers. - Preserve cancellation, deadline, DSCP rollback, prepared-probe retention, and post-send commit ordering. ## Validation - Tokio and all-feature checks, tests, and strict Clippy pass. - Focused cancellation/readiness/short-send regressions passed 10× each.
Sign in to join this conversation.