From 04e9270cac038a872b6be63a510f9932a5ffe572 Mon Sep 17 00:00:00 2001 From: chenkeyu Date: Mon, 13 Jan 2025 14:52:35 +0800 Subject: [PATCH] delete fd from epoll when not found in eventHandlers Issue: https://gitee.com/openharmony/commonlibrary_c_utils/issues/IBHF0K?from=project-issue Signed-off-by: chenkeyu --- base/src/event_demultiplexer.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/base/src/event_demultiplexer.cpp b/base/src/event_demultiplexer.cpp index 058fcbf..f9a2c4f 100644 --- a/base/src/event_demultiplexer.cpp +++ b/base/src/event_demultiplexer.cpp @@ -136,7 +136,10 @@ int EventDemultiplexer::Polling(int timeout /* ms */) taskQue.emplace_back(itor->second); eventQue.emplace_back(events); } else { - UTILS_LOGE("fd not found in eventHandlers_, fd=%{public}d", targetFd); + UTILS_LOGE("fd not found in eventHandlers_, fd=%{public}d, events=%{public}d", targetFd, events); + if (epoll_ctl(epollFd_, EPOLL_CTL_DEL, targetFd, nullptr) == -1) { + UTILS_LOGE("failed to DEL %{public}d from epoll, errno: %{public}d", targetFd, errno); + } } } } -- Gitee