From eefa127b0469aea12eb405019ec74eed790c4f2a Mon Sep 17 00:00:00 2001 From: cheniujh <1271435567@qq.com> Date: Sat, 10 Aug 2024 18:04:32 +0800 Subject: [PATCH] network revised --- src/net/src/worker_thread.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/net/src/worker_thread.cc b/src/net/src/worker_thread.cc index 9e32c840fd..43671fdb7e 100644 --- a/src/net/src/worker_thread.cc +++ b/src/net/src/worker_thread.cc @@ -200,8 +200,6 @@ void* WorkerThread::ThreadMain() { } if (((pfe->mask & kErrorEvent) != 0) || (should_close != 0)) { - //check if this conn disconnected from being blocked by blpop/brpop - dynamic_cast(server_thread_)->ClosingConnCheckForBlrPop(std::dynamic_pointer_cast(in_conn)); net_multiplexer_->NetDelEvent(pfe->fd, 0); CloseFd(in_conn); in_conn = nullptr; @@ -235,7 +233,6 @@ void WorkerThread::DoCronTask() { } conns_.clear(); deleting_conn_ipport_.clear(); - return; } auto iter = conns_.begin(); @@ -274,9 +271,11 @@ void WorkerThread::DoCronTask() { } } for (const auto& conn : to_close) { + net_multiplexer_->NetDelEvent(conn->fd(), 0); CloseFd(conn); } for (const auto& conn : to_timeout) { + net_multiplexer_->NetDelEvent(conn->fd(), 0); CloseFd(conn); server_thread_->handle_->FdTimeoutHandle(conn->fd(), conn->ip_port()); } @@ -304,6 +303,8 @@ bool WorkerThread::TryKillConn(const std::string& ip_port) { void WorkerThread::CloseFd(const std::shared_ptr& conn) { close(conn->fd()); if (auto dispatcher = dynamic_cast(server_thread_); dispatcher != nullptr ) { + //check if this conn disconnected from being blocked by blpop/brpop + dispatcher->ClosingConnCheckForBlrPop(std::dynamic_pointer_cast(conn)); dispatcher->RemoveWatchKeys(conn); } server_thread_->handle_->FdClosedHandle(conn->fd(), conn->ip_port());