Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2e69a987 authored by Ronghua Wu's avatar Ronghua Wu Committed by Android (Google) Code Review
Browse files

Merge "libmediaplayerservice: unlock before trying to reclaim drm session." into mnc-dev

parents 81446325 f35f6be3
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -358,7 +358,18 @@ status_t Drm::openSession(Vector<uint8_t> &sessionId) {
    status_t err = mPlugin->openSession(sessionId);
    if (err == ERROR_DRM_RESOURCE_BUSY) {
        bool retry = false;
        mLock.unlock();
        // reclaimSession may call back to closeSession, since mLock is shared between Drm
        // instances, we should unlock here to avoid deadlock.
        retry = DrmSessionManager::Instance()->reclaimSession(getCallingPid());
        mLock.lock();
        if (mInitCheck != OK) {
            return mInitCheck;
        }

        if (mPlugin == NULL) {
            return -EINVAL;
        }
        if (retry) {
            err = mPlugin->openSession(sessionId);
        }