@@ -70,8 +70,7 @@ void RpcClient::run()
7070
7171 try
7272 {
73- scanConns ();
74- removeInvalidConns ();
73+ scanAndRemoveInvalidConns ();
7574 }
7675 catch (...)
7776 {
@@ -86,7 +85,7 @@ void RpcClient::stop()
8685 scan_cv.notify_all ();
8786}
8887
89- void RpcClient::scanConns ()
88+ void RpcClient::scanAndRemoveInvalidConns ()
9089{
9190 std::vector<std::string> conn_snapshot;
9291 {
@@ -100,35 +99,27 @@ void RpcClient::scanConns()
10099 return ;
101100
102101 const auto store_addrs = getStoreAddresses (pd_client);
103-
104- std::lock_guard<std::mutex> lock (mutex);
102+ std::vector<std::string> invalid_conns;
105103 for (const auto & addr : conn_snapshot)
106104 {
107105 if (store_addrs.find (addr) == store_addrs.end ())
108106 invalid_conns.push_back (addr);
109107 }
110- }
111-
112- void RpcClient::removeConn (const std::string & addr)
113- {
114- std::lock_guard<std::mutex> lock (mutex);
115- if (conns.erase (addr))
116- log->information (" delete invalid addr: " + addr);
117- }
118108
119- void RpcClient::removeInvalidConns ()
120- {
121- std::lock_guard<std::mutex> lock (mutex);
122109 if (invalid_conns.empty ())
123110 return ;
124111
125112 for (const auto & addr : invalid_conns)
126113 {
127- if (conns.erase (addr))
128- log->information (" delete invalid addr: " + addr);
114+ removeConn (addr);
129115 }
116+ }
130117
131- invalid_conns.clear ();
118+ void RpcClient::removeConn (const std::string & addr)
119+ {
120+ std::lock_guard<std::mutex> lock (mutex);
121+ if (conns.erase (addr))
122+ log->information (" delete invalid addr: " + addr);
132123}
133124
134125ConnArrayPtr RpcClient::getConnArray (const std::string & addr)
0 commit comments