instrument: narrow the live-param publish lock to its own mutex, off the reload's decode

Knob-drag publishes no longer block behind a full reload's WAV decode — a dedicated livePublishMutex_ replaces reloadMutex_ for the seqlock's single-writer contract. Also fixes an editor comment overclaim and two doc restatements.
This commit is contained in:
2026-07-30 21:54:20 -04:00
parent bbc7dc70bb
commit efd1e41f46
6 changed files with 26 additions and 21 deletions
+7 -3
View File
@@ -219,9 +219,13 @@ LRESULT CALLBACK ReaSamplerEditor::wndProc(HWND hwnd, UINT msg, WPARAM wParam,
}
if (self->drag_ != DragKind::kNone) {
// A scrollbar drag + the processor-side deck knobs (preview velocity -2 /
// voice count / master gain) mutate no parameter, so dragStartParams_ is
// not a rollback target for them — reset drag state only. Every
// parameter-editing drag restores the pre-grab snapshot.
// voice count / master gain) mutate no params_ field, so dragStartParams_
// is not a rollback target for them — reset drag state only. Every
// params_-editing drag restores the pre-grab snapshot. Voice count and
// master gain are pre-existing exceptions to that: both write straight
// through on every move (editor voiceCount_ / processor masterGain_)
// rather than through params_, so an abandoned drag leaves them at the
// abandoned value indefinitely instead of rolling back.
const bool transient = self->drag_ == DragKind::kScrollThumb ||
(self->drag_ == DragKind::kDeckKnob &&
(self->dragParamId_ == -2 ||