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

Commit 3e57869c authored by Mark Salyzyn's avatar Mark Salyzyn Committed by Gerrit Code Review
Browse files

Merge "logd: fix persistent blocking reader performance"

parents 91581f19 8e8e8db5
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -445,7 +445,24 @@ log_time LogBuffer::flushTo(
    uid_t uid = reader->getUid();

    pthread_mutex_lock(&mLogElementsLock);
    for (it = mLogElements.begin(); it != mLogElements.end(); ++it) {

    if (start == LogTimeEntry::EPOCH) {
        // client wants to start from the beginning
        it = mLogElements.begin();
    } else {
        // Client wants to start from some specified time. Chances are
        // we are better off starting from the end of the time sorted list.
        for (it = mLogElements.end(); it != mLogElements.begin(); /* do nothing */) {
            --it;
            LogBufferElement *element = *it;
            if (element->getMonotonicTime() <= start) {
                it++;
                break;
            }
        }
    }

    for (; it != mLogElements.end(); ++it) {
        LogBufferElement *element = *it;

        if (!privileged && (element->getUid() != uid)) {