diff --git a/init/init.cpp b/init/init.cpp index a01ae8765..be1ebeed7 100644 --- a/init/init.cpp +++ b/init/init.cpp @@ -247,16 +247,15 @@ static class ShutdownState { WakeMainInitThread(); } - std::optional CheckShutdown() { + std::optional CheckShutdown() __attribute__((warn_unused_result)) { auto lock = std::lock_guard{shutdown_command_lock_}; if (do_shutdown_ && !IsShuttingDown()) { + do_shutdown_ = false; return shutdown_command_; } return {}; } - void set_do_shutdown(bool value) { do_shutdown_ = value; } - private: std::mutex shutdown_command_lock_; std::string shutdown_command_ GUARDED_BY(shutdown_command_lock_); @@ -1094,7 +1093,6 @@ int SecondStageMain(int argc, char** argv) { LOG(INFO) << "Got shutdown_command '" << *shutdown_command << "' Calling HandlePowerctlMessage()"; HandlePowerctlMessage(*shutdown_command); - shutdown_state.set_do_shutdown(false); } if (!(prop_waiter_state.MightBeWaiting() || Service::is_exec_service_running())) {