Merge "Boost init priority before main loop"

This commit is contained in:
Wei Wang 2020-07-08 04:53:04 +00:00 committed by Gerrit Code Review
commit 4203129353
4 changed files with 10 additions and 1 deletions

View file

@ -868,6 +868,8 @@ int SecondStageMain(int argc, char** argv) {
// Run all property triggers based on current state of the properties. // Run all property triggers based on current state of the properties.
am.QueueBuiltinAction(queue_property_triggers_action, "queue_property_triggers"); am.QueueBuiltinAction(queue_property_triggers_action, "queue_property_triggers");
// Restore prio before main loop
setpriority(PRIO_PROCESS, 0, 0);
while (true) { while (true) {
// By default, sleep until something happens. // By default, sleep until something happens.
auto epoll_timeout = std::optional<std::chrono::milliseconds>{}; auto epoll_timeout = std::optional<std::chrono::milliseconds>{};

View file

@ -52,7 +52,8 @@ int main(int argc, char** argv) {
#if __has_feature(address_sanitizer) #if __has_feature(address_sanitizer)
__asan_set_error_report_callback(AsanReportCallback); __asan_set_error_report_callback(AsanReportCallback);
#endif #endif
// Boost prio which will be restored later
setpriority(PRIO_PROCESS, 0, -20);
if (!strcmp(basename(argv[0]), "ueventd")) { if (!strcmp(basename(argv[0]), "ueventd")) {
return ueventd_main(argc, argv); return ueventd_main(argc, argv);
} }

View file

@ -18,6 +18,8 @@
#include <fcntl.h> #include <fcntl.h>
#include <poll.h> #include <poll.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h> #include <unistd.h>
#include <android-base/file.h> #include <android-base/file.h>
@ -181,6 +183,8 @@ int SubcontextMain(int argc, char** argv, const BuiltinFunctionMap* function_map
trigger_shutdown = [](const std::string& command) { shutdown_command = command; }; trigger_shutdown = [](const std::string& command) { shutdown_command = command; };
auto subcontext_process = SubcontextProcess(function_map, context, init_fd); auto subcontext_process = SubcontextProcess(function_map, context, init_fd);
// Restore prio before main loop
setpriority(PRIO_PROCESS, 0, 0);
subcontext_process.MainLoop(); subcontext_process.MainLoop();
return 0; return 0;
} }

View file

@ -321,6 +321,8 @@ int ueventd_main(int argc, char** argv) {
while (waitpid(-1, nullptr, WNOHANG) > 0) { while (waitpid(-1, nullptr, WNOHANG) > 0) {
} }
// Restore prio before main loop
setpriority(PRIO_PROCESS, 0, 0);
uevent_listener.Poll([&uevent_handlers](const Uevent& uevent) { uevent_listener.Poll([&uevent_handlers](const Uevent& uevent) {
for (auto& uevent_handler : uevent_handlers) { for (auto& uevent_handler : uevent_handlers) {
uevent_handler->HandleUevent(uevent); uevent_handler->HandleUevent(uevent);