Просмотр исходного кода

audio: fix shutdown deadlock in audio renderer

Liam 2 лет назад
Родитель
Сommit
68ea0a2b72
1 измененных файлов с 4 добавлено и 0 удалено
  1. 4 0
      src/audio_core/sink/sink_stream.cpp

+ 4 - 0
src/audio_core/sink/sink_stream.cpp

@@ -204,6 +204,10 @@ void SinkStream::ProcessAudioOutAndRender(std::span<s16> output_buffer, std::siz
     // paused and we'll desync, so just play silence.
     // paused and we'll desync, so just play silence.
     if (system.IsPaused() || system.IsShuttingDown()) {
     if (system.IsPaused() || system.IsShuttingDown()) {
         if (system.IsShuttingDown()) {
         if (system.IsShuttingDown()) {
+            {
+                std::scoped_lock lk{release_mutex};
+                queued_buffers.store(0);
+            }
             release_cv.notify_one();
             release_cv.notify_one();
         }
         }