Loading services/audioflinger/AudioFlinger.cpp +10 −11 Original line number Diff line number Diff line Loading @@ -1236,23 +1236,22 @@ status_t AudioFlinger::createTrack(const media::CreateTrackRequest& _input, output.portId = portId; if (lStatus == NO_ERROR) { // no risk of deadlock because AudioFlinger::mLock is held Mutex::Autolock _dl(thread->mLock); // Connect secondary outputs. Failure on a secondary output must not imped the primary // Any secondary output setup failure will lead to a desync between the AP and AF until // the track is destroyed. updateSecondaryOutputsForTrack_l(track.get(), thread, secondaryOutputs); } // move effect chain to this output thread if an effect on same session was waiting // for a track to be created if (lStatus == NO_ERROR && effectThread != NULL) { // no risk of deadlock because AudioFlinger::mLock is held Mutex::Autolock _dl(thread->mLock); if (effectThread != nullptr) { Mutex::Autolock _sl(effectThread->mLock); if (moveEffectChain_l(sessionId, effectThread, thread) == NO_ERROR) { effectThreadId = thread->id(); effectIds = thread->getEffectIds_l(sessionId); } } } // Look for sync events awaiting for a session to be used. for (size_t i = 0; i < mPendingSyncEvents.size(); i++) { Loading Loading
services/audioflinger/AudioFlinger.cpp +10 −11 Original line number Diff line number Diff line Loading @@ -1236,23 +1236,22 @@ status_t AudioFlinger::createTrack(const media::CreateTrackRequest& _input, output.portId = portId; if (lStatus == NO_ERROR) { // no risk of deadlock because AudioFlinger::mLock is held Mutex::Autolock _dl(thread->mLock); // Connect secondary outputs. Failure on a secondary output must not imped the primary // Any secondary output setup failure will lead to a desync between the AP and AF until // the track is destroyed. updateSecondaryOutputsForTrack_l(track.get(), thread, secondaryOutputs); } // move effect chain to this output thread if an effect on same session was waiting // for a track to be created if (lStatus == NO_ERROR && effectThread != NULL) { // no risk of deadlock because AudioFlinger::mLock is held Mutex::Autolock _dl(thread->mLock); if (effectThread != nullptr) { Mutex::Autolock _sl(effectThread->mLock); if (moveEffectChain_l(sessionId, effectThread, thread) == NO_ERROR) { effectThreadId = thread->id(); effectIds = thread->getEffectIds_l(sessionId); } } } // Look for sync events awaiting for a session to be used. for (size_t i = 0; i < mPendingSyncEvents.size(); i++) { Loading