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

Commit a0b33d49 authored by Lajos Molnar's avatar Lajos Molnar Committed by Automerger Merge Worker
Browse files

Merge "media: release mediaplayerservice lock while dumping services" into tm-dev am: 1bb520ee

parents 14ccc225 1bb520ee
Loading
Loading
Loading
Loading
+29 −16
Original line number Diff line number Diff line
@@ -611,26 +611,39 @@ status_t MediaPlayerService::dump(int fd, const Vector<String16>& args)
                IPCThreadState::self()->getCallingUid());
        result.append(buffer);
    } else {
        {
            // capture clients under lock
            Mutex::Autolock lock(mLock);
            for (int i = 0, n = mClients.size(); i < n; ++i) {
                sp<Client> c = mClients[i].promote();
            if (c != 0) c->dump(fd, args);
                if (c != nullptr) {
                    clients.add(c);
                }
        if (mMediaRecorderClients.size() == 0) {
                result.append(" No media recorder client\n\n");
        } else {
            }

            for (int i = 0, n = mMediaRecorderClients.size(); i < n; ++i) {
                sp<MediaRecorderClient> c = mMediaRecorderClients[i].promote();
                if (c != 0) {
                if (c != nullptr) {
                    mediaRecorderClients.add(c);
                }
            }
        }

        // dump clients outside of lock
        for (const sp<Client> &c : clients) {
            c->dump(fd, args);
        }
        if (mediaRecorderClients.size() == 0) {
            result.append(" No media recorder client\n\n");
        } else {
            for (const sp<MediaRecorderClient> &c : mediaRecorderClients) {
                snprintf(buffer, 255, " MediaRecorderClient pid(%d)\n",
                        c->mAttributionSource.pid);
                result.append(buffer);
                write(fd, result.string(), result.size());
                result = "\n";
                c->dump(fd, args);
                    mediaRecorderClients.add(c);
                }

            }
        }