From cb28fb13b84efedb216ab8b8064879b727e85b58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Thu, 29 Mar 2018 14:35:19 -0400 Subject: [PATCH] OpenSL: limit waiting for playback Prevent deadlock by stop waiting on the condition variable after a second. Change-Id: If707fac389615333d1074b0973d693a84c9a974e --- src/media/audio/opensl/opensllayer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/media/audio/opensl/opensllayer.cpp b/src/media/audio/opensl/opensllayer.cpp index 6ad51326b8..a00a3d8d75 100644 --- a/src/media/audio/opensl/opensllayer.cpp +++ b/src/media/audio/opensl/opensllayer.cpp @@ -281,7 +281,7 @@ OpenSLLayer::startAudioPlayback() playThread = std::thread([&]() { std::unique_lock<std::mutex> lck(playMtx); while (player_ || ringtone_) { - playCv.wait(lck); + playCv.wait_for(lck, std::chrono::seconds(1)); if (player_ && player_->waiting_) { std::lock_guard<std::mutex> lk(player_->m_); engineServicePlay(false); -- GitLab