Skip to content

Commit a4c456c

Browse files
committed
fixed thread race in SoundTrackWriter
1 parent 104ad0e commit a4c456c

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/framework/audio/engine/internal/export/soundtrackwriter.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,15 @@ Ret SoundTrackWriter::write()
105105
m_encoderPtr->end();
106106
}
107107

108-
audioEngine()->setMode(RenderMode::IdleMode);
109-
110-
m_source->setOutputSpec(audioEngine()->outputSpec());
111-
m_source->setIsActive(false);
108+
//! NOTE Changes to the source and audio engine state
109+
// must be performed via execOperation - so that synchronization with the audio driver process works
110+
IAudioEngine::Operation func = [this]() {
111+
audioEngine()->setMode(RenderMode::IdleMode);
112+
113+
m_source->setOutputSpec(audioEngine()->outputSpec());
114+
m_source->setIsActive(false);
115+
};
116+
audioEngine()->execOperation(OperationType::LongOperation, func);
112117

113118
m_isAborted = false;
114119
};

0 commit comments

Comments
 (0)