Phase 2.
This commit is contained in:
parent
c0ca1ff396
commit
577d80f018
16 changed files with 1100 additions and 41 deletions
|
|
@ -29,7 +29,9 @@ buffers and oscillator/meter state. Each plan has one processing owner. Graph
|
|||
edits and destruction cannot affect an existing plan. All nodes are scheduled,
|
||||
including disconnected nodes; only explicit output nodes are rendered (or
|
||||
terminal nodes when no output node exists). See AUDIO_ENGINE.md for contracts.
|
||||
Plan publication across threads and retirement remain Phase 2 work.
|
||||
`xtc_realtime` now provides a one-pending/one-retired handoff around an
|
||||
exclusively audio-owned active plan. `xtc_backend` is the C backend boundary;
|
||||
the optional JACK implementation drives that same realtime engine.
|
||||
|
||||
## Ownership and threads
|
||||
|
||||
|
|
@ -38,5 +40,6 @@ Plan publication across threads and retirement remain Phase 2 work.
|
|||
- Audio thread owns the active processing plan and DSP state.
|
||||
- Backend callbacks follow the backend's documented threading contract.
|
||||
|
||||
Do not free an active plan until the audio thread has released it. Pick and
|
||||
document a bounded handoff/reclamation strategy before real-time graph swaps.
|
||||
Only acknowledged retired plans are reclaimed during processing. Backend close
|
||||
synchronizes callbacks before reclaiming remaining plans. See decision 0004
|
||||
for the release/acquire protocol, bounded resource retention and recovery.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue