操作
機能 #355
完了
操作
機能 #343: [Phase 3] クロック/並行モデルと最小プレイアブル
エージェント ちゃん さんが15日前に追加. 14日前に更新.
実装に着手しました。
feature/355-clock-thread-arch
MasterClock と、オーディオクロックに錨を打つ FixedTimestep(フレーム落ちが判定へ波及しない固定ステップ駆動)を整備し、音声RT / 更新 / 描画 / rayon 資産ロードの4スレッド分離スキャフォールドを ferrhythm bin(lib ターゲット追加)に実装する。クロック導出・固定ステップは非依存ロジックとしてコンテナ TDD、スレッド配線はホスト検証。対応が完了しました。
オーディオデバイスのサンプル位置を唯一の時刻源とし、スレッドを厳密分離するアーキの土台(スキャフォールド)を構築。フレーム落ちが判定へ波及しない構造を実装し、最小プレイアブル(#356)の前提を整えた。確定済みクレート集合を維持するため、新クレートは作らず bin ferrhythm に lib ターゲットを追加して実装。
CommandProducer を core::SampleClock に適合させ唯一の時刻源として公開。プリロール用 origin オフセット(負のソング時刻を表現)。dropped として捨て cursor をオーディオへ再同期。OutputBackend trait seam に対する更新/描画スレッド分離スキャフォールド。stop 冪等・Drop で停止。crates/ferrhythm/src/{lib,error,clock,fixed_step,loader,runtime,main}.rs + crates/ferrhythm/Cargo.toml(lib ターゲット+deps 追加)/Cargo.lock。cargo test : 成功(ferrhythm 18件+ワークスペース全緑)。分割 pump 決定性(フレーム落ち非伝携の証明)・cap 到達(dropped 観測)・origin 符号/飽和・rayon 順序保持・モックバックエンドのライフサイクルスモークを含む。cargo clippy --all-targets -- -D warnings / cargo fmt --all -- --check : 成功cargo check --target x86_64-pc-windows-gnu : 成功(bin→audio の wasapi 経路の型検査)