From dcd23dfc58c68a843051c13e8cdf155a8e3919d7 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Fri, 14 Oct 2022 12:55:35 -0700 Subject: [PATCH] init/epoll: Stop using smart pointers Change the type of 'handler' from std::shared_ptr into Handler. This change is safe since a previous CL moved the handler calls from the Epoll::Wait() caller into Epoll::Wait() itself. Bug: 213617178 Change-Id: Ife79e6863536b96ee4bb3cd778f6b0b164a95fed Signed-off-by: Bart Van Assche --- init/epoll.cpp | 4 ++-- init/epoll.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/init/epoll.cpp b/init/epoll.cpp index f814c6530..fd1af4fff 100644 --- a/init/epoll.cpp +++ b/init/epoll.cpp @@ -48,7 +48,7 @@ Result Epoll::RegisterHandler(int fd, Handler handler, uint32_t events) { auto [it, inserted] = epoll_handlers_.emplace( fd, Info{ .events = events, - .handler = std::make_shared(std::move(handler)), + .handler = std::move(handler), }); if (!inserted) { return Error() << "Cannot specify two epoll handlers for a given FD"; @@ -107,7 +107,7 @@ Result Epoll::Wait(std::optional timeout) { // Log something informational. LOG(ERROR) << "Received unexpected epoll event set: " << ev[i].events; } - (*info.handler)(); + info.handler(); for (auto fd : to_remove_) { epoll_handlers_.erase(fd); } diff --git a/init/epoll.h b/init/epoll.h index 585313435..1e71803f6 100644 --- a/init/epoll.h +++ b/init/epoll.h @@ -48,7 +48,7 @@ class Epoll { private: struct Info { - std::shared_ptr handler; + Handler handler; uint32_t events; };