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

Commit 4aa84212 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "init: Add warning in init first stage mount"

parents b7761b26 fdafb3d0
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -23,7 +23,11 @@

#include <memory>

#include <android-base/chrono_utils.h>
#include <android-base/file.h>
#include <android-base/logging.h>
#include <android-base/scopeguard.h>
#include <android-base/stringprintf.h>
#include <cutils/uevent.h>

namespace android {
@@ -130,9 +134,19 @@ ListenerAction UeventListener::RegenerateUeventsForDir(DIR* d,

    int fd = openat(dfd, "uevent", O_WRONLY);
    if (fd >= 0) {
        android::base::Timer t;
        write(fd, "add\n", 4);
        const std::string fd_path = android::base::StringPrintf("/proc/self/fd/%d", fd);
        std::string uevent_file_path;
        android::base::Readlink(fd_path, &uevent_file_path);
        close(fd);

        auto guard = android::base::make_scope_guard([&t, &uevent_file_path]() {
            if (t.duration() > 50ms) {
                LOG(WARNING) << "ReadUevent took " << t << " on '" << uevent_file_path << "'";
            }
        });

        Uevent uevent;
        while (ReadUevent(&uevent)) {
            if (callback(uevent) == ListenerAction::kStop) return ListenerAction::kStop;