mirror of
https://github.com/MariaDB/server.git
synced 2025-12-04 17:23:46 +03:00
added management function to purge stale sessions in the management server
ndb/include/util/Bitmask.hpp: added bitXORC ndb/include/util/SocketServer.hpp: added method to apply function on each session ndb/src/common/util/SocketServer.cpp: added method to apply function on each session
This commit is contained in:
@@ -258,6 +258,15 @@ transfer(NDB_SOCKET_TYPE sock){
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
SocketServer::foreachSession(void (*func)(SocketServer::Session*, void *), void *data)
|
||||
{
|
||||
for(int i = m_sessions.size() - 1; i >= 0; i--){
|
||||
(*func)(m_sessions[i].m_session, data);
|
||||
}
|
||||
checkSessions();
|
||||
}
|
||||
|
||||
void
|
||||
SocketServer::checkSessions(){
|
||||
for(int i = m_sessions.size() - 1; i >= 0; i--){
|
||||
@@ -278,8 +287,10 @@ void
|
||||
SocketServer::stopSessions(bool wait){
|
||||
int i;
|
||||
for(i = m_sessions.size() - 1; i>=0; i--)
|
||||
m_sessions[i].m_session->m_stop = true;
|
||||
|
||||
{
|
||||
m_sessions[i].m_session->stopSession();
|
||||
m_sessions[i].m_session->m_stop = true; // to make sure
|
||||
}
|
||||
for(i = m_services.size() - 1; i>=0; i--)
|
||||
m_services[i].m_service->stopSessions();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user