操作
リファクタ #373
完了機能 #342: [Phase 2] リアルタイム音声エンジン(ferrhythm-audio)
ferrhythm-audio: WASAPI 出力バックエンドの follow-up(COM uninit・RT診断ログ)
リファクタ #373:
ferrhythm-audio: WASAPI 出力バックエンドの follow-up(COM uninit・RT診断ログ)
説明
目的¶
#354(WASAPI 出力バックエンド)のレビューで洗い出した、非ブロッカーの技術的負債(#341 スパイク踏襲の既知事項)を解消する。いずれも crates/ferrhythm-audio/src/wasapi.rs(#[cfg(windows)])のホストネイティブコード。
スコープ¶
-
COM uninitialize 未呼び出し: レンダスレッドが
CoInitializeExした後、スレッド終了時にCoUninitializeを呼んでいない。出力の start/stop を繰り返す(デバイス切替等)と毎回新スレッドが COM 初期化したままになる。スレッド終了パスでCoUninitializeを呼ぶ。 -
RT ループ内の診断
eprintln!: ドリフト検出時のeprintln!(約 1 秒境界かつドリフト検出時のみ発火)は現状 RT スレッド上で syscall/ロックを起こす。頂点コミット(スパイク)踏襲だが、本番では RT パス外(例: ドリフト量をロックフリーに記録し非 RT スレッドで収集、またはカウンタのみ)へ退避するか検討。
補足¶
- #354 本体の機能・テストに影響なし(非ブロッカー、ホスト検証での品質向上)。優先度低め。
- 検証は
cargo check/clippy --target x86_64-pc-windows-gnu+ Windows ホストでの連続再生・デバイス切替。
担当¶
Codex 委譲(source-only)、ホスト検証はユーザー。
関連: #354
操作