summaryrefslogtreecommitdiff
path: root/src/audio_core/sink
diff options
context:
space:
mode:
authorGravatar bunnei2023-05-31 18:21:10 -0700
committerGravatar bunnei2023-06-03 00:06:06 -0700
commit40e938376b55fc05c973b064bf35fa3a225881be (patch)
tree9b2aa6fa853439ac89799bdfd74b88fa79108087 /src/audio_core/sink
parentandroid: ForegroundService: Handle null intent. (diff)
downloadyuzu-40e938376b55fc05c973b064bf35fa3a225881be.tar.gz
yuzu-40e938376b55fc05c973b064bf35fa3a225881be.tar.xz
yuzu-40e938376b55fc05c973b064bf35fa3a225881be.zip
android: audio_core: Avoid shutdown hang.
Diffstat (limited to 'src/audio_core/sink')
-rw-r--r--src/audio_core/sink/sink_stream.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/audio_core/sink/sink_stream.cpp b/src/audio_core/sink/sink_stream.cpp
index 2331aaff9..b408fca89 100644
--- a/src/audio_core/sink/sink_stream.cpp
+++ b/src/audio_core/sink/sink_stream.cpp
@@ -273,9 +273,12 @@ void SinkStream::WaitFreeSpace() {
273 std::unique_lock lk{release_mutex}; 273 std::unique_lock lk{release_mutex};
274 release_cv.wait_for(lk, std::chrono::milliseconds(5), 274 release_cv.wait_for(lk, std::chrono::milliseconds(5),
275 [this]() { return queued_buffers < max_queue_size; }); 275 [this]() { return queued_buffers < max_queue_size; });
276#ifndef ANDROID
277 // This wait can cause a problematic shutdown hang on Android.
276 if (queued_buffers > max_queue_size + 3) { 278 if (queued_buffers > max_queue_size + 3) {
277 release_cv.wait(lk, [this]() { return queued_buffers < max_queue_size; }); 279 release_cv.wait(lk, [this]() { return queued_buffers < max_queue_size; });
278 } 280 }
281#endif
279} 282}
280 283
281} // namespace AudioCore::Sink 284} // namespace AudioCore::Sink