init/epoll: Stop using smart pointers

Change the type of 'handler' from std::shared_ptr<Handler> 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 <bvanassche@google.com>
This commit is contained in:
Bart Van Assche 2022-10-14 12:55:35 -07:00
parent bc5c4a4659
commit dcd23dfc58
2 changed files with 3 additions and 3 deletions

View file

@ -48,7 +48,7 @@ Result<void> Epoll::RegisterHandler(int fd, Handler handler, uint32_t events) {
auto [it, inserted] = epoll_handlers_.emplace(
fd, Info{
.events = events,
.handler = std::make_shared<Handler>(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<int> Epoll::Wait(std::optional<std::chrono::milliseconds> 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);
}

View file

@ -48,7 +48,7 @@ class Epoll {
private:
struct Info {
std::shared_ptr<Handler> handler;
Handler handler;
uint32_t events;
};