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

Commit 9c37337c authored by Glenn Kasten's avatar Glenn Kasten
Browse files

media.log: dump all readers with dumpsys option "r"

Bug: 37153050
Test: builds OK, "dumpsys media.log r" shows all readers
Change-Id: I584dbbeb0532b019441f7aeb4793a9f4e3f6bdda
parent 69454c63
Loading
Loading
Loading
Loading
+30 −27
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@

namespace android {

// static const char kDeadlockedString[] = "MediaLogService may be deadlocked\n";
 static const char kDeadlockedString[] = "MediaLogService may be deadlocked\n";
MediaLogService::MediaLogService() :
    BnMediaLogService(),
    mMergerShared((NBLog::Shared*) malloc(NBLog::Timeline::sharedSize(kMergeBufferSize))),
@@ -99,9 +99,10 @@ status_t MediaLogService::dump(int fd, const Vector<String16>& args __unused)
        return NO_ERROR;
    }

#if 0
    Vector<NBLog::NamedReader> namedReaders;
    {
    if (args.size() > 0) {
        const String8 arg0(args[0]);
        if (!strcmp(arg0.string(), "-r")) {
            // needed because mNamedReaders is protected by mLock
            bool locked = dumpTryLock(mLock);

            // failed to lock - MediaLogService is probably deadlocked
@@ -112,22 +113,24 @@ status_t MediaLogService::dump(int fd, const Vector<String16>& args __unused)
                } else {
                    ALOGW("%s:", result.string());
                }
                // TODO should we instead proceed to mMergeReader.dump? does it need lock?
                return NO_ERROR;
            }
            // namedReaders = mNamedReaders;
            // for (size_t i = 0; i < namedReaders.size(); i++) {
            //     const NBLog::NamedReader& namedReader = namedReaders[i];
            //     if (fd >= 0) {
            //         dprintf(fd, "\n%s:\n", namedReader.name());
            //     } else {
            //         ALOGI("%s:", namedReader.name());
            //     }

            for (const auto& namedReader : mNamedReaders) {
                if (fd >= 0) {
                    dprintf(fd, "\n%s:\n", namedReader.name());
                } else {
                    ALOGI("%s:", namedReader.name());
                }
                // TODO This code is for testing, remove it when done
                // namedReader.reader()->dump(fd, 0 /*indent*/);
            // }
            }

            mLock.unlock();
        }
#endif
    }

    // FIXME request merge to make sure log is up to date
    mMergeReader.dump(fd);
    return NO_ERROR;
+1 −1
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ private:

    Mutex               mLock;

    Vector<NBLog::NamedReader> mNamedReaders;
    Vector<NBLog::NamedReader> mNamedReaders;   // protected by mLock
    NBLog::Shared *mMergerShared;
    NBLog::Merger mMerger;
    NBLog::MergeReader mMergeReader;