diff --git a/media/jni/soundpool/StreamManager.cpp b/media/jni/soundpool/StreamManager.cpp index 79e4d8ae6e267..c61221892c280 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(waitTimeNs)); + if (mRestartStreams.empty()) { // on thread start, mRestartStreams can be non-empty. + mStreamManagerCondition.wait_for( + lock, std::chrono::duration(waitTimeNs)); + } ALOGV("%s(%d) awake", __func__, id); sanityCheckQueue_l();