summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media/jni/soundpool/StreamManager.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/media/jni/soundpool/StreamManager.cpp b/media/jni/soundpool/StreamManager.cpp
index 79e4d8ae6e26..c61221892c28 100644
--- a/media/jni/soundpool/StreamManager.cpp
+++ b/media/jni/soundpool/StreamManager.cpp
@@ -340,8 +340,10 @@ void StreamManager::run(int32_t id)
int64_t waitTimeNs = kWaitTimeBeforeCloseNs;
std::unique_lock lock(mStreamManagerLock);
while (!mQuit) {
- mStreamManagerCondition.wait_for(
- lock, std::chrono::duration<int64_t, std::nano>(waitTimeNs));
+ if (mRestartStreams.empty()) { // on thread start, mRestartStreams can be non-empty.
+ mStreamManagerCondition.wait_for(
+ lock, std::chrono::duration<int64_t, std::nano>(waitTimeNs));
+ }
ALOGV("%s(%d) awake", __func__, id);
sanityCheckQueue_l();