Skip to content

Submit login-dependent client operations eagerly - #130

Merged
Stephen Belanger (Qard) merged 1 commit into
refactor/eager-dataset-operationsfrom
refactor/eager-client-operations
Oct 28, 2026
Merged

Stephen Belanger (Qard) merged 1 commit into
refactor/eager-dataset-operationsfrom
refactor/eager-client-operations

Conversation

@Qard

Copy link
Copy Markdown
Contributor

Login-dependent client calls previously waited until their futures were polled, so an unobserved login wait or resource-builder request was absent from task admission and shutdown. Make wait_for_login, span_builder, and dataset_builder submit immediately to the selected runtime and return Completion tokens. Existing .await call sites still retrieve their eventual values.

  • Report skipped-login configuration failures in the token’s issuance result. Accepted requests use the shared bounded response-task budget and shutdown deadline, including when their observers are dropped.
  • Keep is_logged_in and login_state as immediate local getters. Remove .await from their call sites; they require no executor and remain available after shutdown.
  • Reuse a private rejected-completion constructor for validation failures without requiring error cloning or scheduling a task.

Stacked on #129. Experiment operations and client span updates remain subsequent layers: trace-producing operations need to preserve their accepted delivery obligation while registration completes and shutdown closes public write admission.

Validation: 319 unit/integration tests and 9 doctests passed, with existing ignored tests unchanged. Strict all-target/all-feature Clippy, rustdoc, formatting, and diff checks passed. New consumer tests cover synchronous issuance with cross-executor observation, shutdown with unobserved login waits/builders, bounded admission after observer drop, immediate skipped-login rejection, and stopped explicit runtimes despite cached login state.

@Qard
Stephen Belanger (Qard) merged commit 2b61019 into refactor/eager-dataset-operations Oct 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant