diff --git a/frameworks/libhilog/socket/hilog_input_socket_server.cpp b/frameworks/libhilog/socket/hilog_input_socket_server.cpp index 75f0a108e5e41a958e9db0302303cefe606afb74..f8280ccf9d6156a00735d80c29bc92833e3049ab 100644 --- a/frameworks/libhilog/socket/hilog_input_socket_server.cpp +++ b/frameworks/libhilog/socket/hilog_input_socket_server.cpp @@ -36,7 +36,9 @@ HilogInputSocketServer::ServerThreadState HilogInputSocketServer::RunServingThre return ServerThreadState::ALREADY_STARTED; } m_stopServer.store(false); - m_serverThread = std::thread(&HilogInputSocketServer::ServingThread, this); + m_serverThread = std::thread([this]() { + ServingThread(); + }); if (m_serverThread.get_id() != std::thread().get_id()) { return ServerThreadState::JUST_STARTED; } diff --git a/services/hilogd/cmd_executor.cpp b/services/hilogd/cmd_executor.cpp index 9ab6fde8beeea212c979127115d9e6238c23ed1d..f37f92d50072ca20c92c347bbf98d33670f2d7d2 100644 --- a/services/hilogd/cmd_executor.cpp +++ b/services/hilogd/cmd_executor.cpp @@ -70,7 +70,9 @@ void CmdExecutor::OnAcceptedConnection(std::unique_ptr handler) auto newVal = std::make_unique(); if (newVal != nullptr) { newVal->m_stopThread.store(false); - newVal->m_clientThread = std::thread(&CmdExecutor::ClientEventLoop, this, std::move(handler)); + newVal->m_clientThread = std::thread([this](std::unique_ptr handler) { + ClientEventLoop(std::move(handler)); + }, std::move(handler)); m_clients.push_back(std::move(newVal)); } } diff --git a/services/hilogd/log_persister.cpp b/services/hilogd/log_persister.cpp index 98b34e6dcd4b3d738841809b9df9840f13fd0eec..584042bea09cc08e4fed024743bb4a0cd5e30395 100644 --- a/services/hilogd/log_persister.cpp +++ b/services/hilogd/log_persister.cpp @@ -323,7 +323,9 @@ void LogPersister::Start() } if (IsEmptyThread(m_persisterThread)) { - m_persisterThread = std::thread(&LogPersister::ReceiveLogLoop, shared_from_this()); + m_persisterThread = std::thread([shared = shared_from_this()]() { + shared->ReceiveLogLoop(); + }); } else { std::cout << " Persister thread already started!\n"; } diff --git a/services/hilogd/main.cpp b/services/hilogd/main.cpp index d45938124844249fb75511fbb19ed875b1f19a67..7daa6bfa2e16b1d5512a06e8173b0dd3c8117920 100644 --- a/services/hilogd/main.cpp +++ b/services/hilogd/main.cpp @@ -195,7 +195,7 @@ int HilogdEntry() (void)WriteStringToFile(myPid, SYSTEM_BG_BLKIO); }, {}, {}, ffrt::task_attr().name("hilogd.cgroup_set")); - auto cmdExecuteTask = std::async(std::launch::async, [&logCollector, &hilogBuffer, &kmsgBuffer]() { + std::thread([&logCollector, &hilogBuffer, &kmsgBuffer] () { prctl(PR_SET_NAME, "hilogd.cmd"); CmdList controlCmdList { IoctlCmd::PERSIST_START_RQST, @@ -213,7 +213,7 @@ int HilogdEntry() }; CmdExecutor controlExecutor(logCollector, hilogBuffer, kmsgBuffer, controlCmdList, ("hilogd.control")); controlExecutor.MainLoop(CONTROL_SOCKET_NAME); - }); + }).detach(); CmdList outputList {IoctlCmd::OUTPUT_RQST}; CmdExecutor outputExecutor(logCollector, hilogBuffer, kmsgBuffer, outputList, ("hilogd.output"));