Skip to content

feat: support runnable restart cycles#42

Merged
mrcrgl merged 1 commit into
mainfrom
feat/18-runnable-restart-support
Apr 7, 2026
Merged

feat: support runnable restart cycles#42
mrcrgl merged 1 commit into
mainfrom
feat/18-runnable-restart-support

Conversation

@mrcrgl

@mrcrgl mrcrgl commented Apr 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • make RuntimeGuard fanout resilient across ticker generations by retrying delivery when a ticker disappears between readiness check and send
  • require fanout to wait for a live ticker sender (!is_closed()), not just presence of a sender slot
  • add restart-focused regression tests:
    • test_runtime_guard_supports_restart_after_ticker_drop
    • test_runnable_can_restart_start_shutdown_start
  • update changelog under Unreleased -> Fixed

Why

Issue #18 requires Runnable instances to support start, shutdown, start cycles. The runtime fanout could terminate when control was sent while a previous ticker sender was closed, which broke restart reliability.

Validation

  • cargo fmt --all -- --check
  • cargo clippy --all-features -- -D warnings
  • cargo test --all
  • cargo test --no-default-features

Closes #18

@mrcrgl mrcrgl marked this pull request as ready for review April 7, 2026 12:09
@mrcrgl mrcrgl merged commit e52b458 into main Apr 7, 2026
3 checks passed
@mrcrgl mrcrgl deleted the feat/18-runnable-restart-support branch April 7, 2026 12:09
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.

Allow Runnable implementations to be restarted (start, shutdown, start)

1 participant