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