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:
parent
bc5c4a4659
commit
dcd23dfc58
2 changed files with 3 additions and 3 deletions
|
|
@ -48,7 +48,7 @@ Result<void> Epoll::RegisterHandler(int fd, Handler handler, uint32_t events) {
|
||||||
auto [it, inserted] = epoll_handlers_.emplace(
|
auto [it, inserted] = epoll_handlers_.emplace(
|
||||||
fd, Info{
|
fd, Info{
|
||||||
.events = events,
|
.events = events,
|
||||||
.handler = std::make_shared<Handler>(std::move(handler)),
|
.handler = std::move(handler),
|
||||||
});
|
});
|
||||||
if (!inserted) {
|
if (!inserted) {
|
||||||
return Error() << "Cannot specify two epoll handlers for a given FD";
|
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 something informational.
|
||||||
LOG(ERROR) << "Received unexpected epoll event set: " << ev[i].events;
|
LOG(ERROR) << "Received unexpected epoll event set: " << ev[i].events;
|
||||||
}
|
}
|
||||||
(*info.handler)();
|
info.handler();
|
||||||
for (auto fd : to_remove_) {
|
for (auto fd : to_remove_) {
|
||||||
epoll_handlers_.erase(fd);
|
epoll_handlers_.erase(fd);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ class Epoll {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct Info {
|
struct Info {
|
||||||
std::shared_ptr<Handler> handler;
|
Handler handler;
|
||||||
uint32_t events;
|
uint32_t events;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue