Add orderly shutdown on window close
This commit is contained in:
@@ -61,8 +61,18 @@ Reason for not implementing: the current `run_playback` / `run_capture` code doe
|
||||
|
||||
Unverified: the same-identity peer restart has not been exercised in a live 2-machine call; the WAV fix is counter/size-field tested, not a real >12h recording.
|
||||
|
||||
## Backlog A14 - orderly window-close shutdown
|
||||
|
||||
- Added `CoreCommand::Shutdown` and `UiEvent::ShutdownComplete`.
|
||||
- Window close now saves config, marks the GUI as closing, asynchronously queues `Shutdown`, and exits only after the core acknowledges completion or after a 5-second fallback timeout.
|
||||
- Core shutdown finalizes active mixed/multitrack recordings before session teardown, stops the standalone mic monitor, runs `ActiveSession::shutdown()` for active calls, clears room presence/routing, closes the persistent network stack, sends `ShutdownComplete`, and ends the core loop.
|
||||
- The shutdown command is queued with an awaited `mpsc::Sender::send` task instead of the best-effort `try_send`, so a full command queue does not immediately drop the close command.
|
||||
|
||||
Unverified: actual GUI window-close behavior during a live call/recording still needs a manual run; tests/builds only prove the path compiles and existing unit coverage still passes.
|
||||
|
||||
## Verification
|
||||
|
||||
- `cargo check` passed.
|
||||
- `cargo test --lib` passed: 288 passed, 0 failed, 2 ignored.
|
||||
- `cargo clippy --all-targets` passed.
|
||||
- `cargo build --release` passed.
|
||||
|
||||
Reference in New Issue
Block a user