A quick overview of what thread locks what criticalsection
The deadlock is between ServerTickThread and cSocketThread
ServerTickThread callstack:
cSocketThread callstack:
Code:
ServerTickThread
Owns cServer::m_CSClients
Wait cSocketThreads::m_CS
cSocketThread
Owns cSocketThreads::m_CS
Wait cServer::m_CSClients
cServer::ServerListenThread
Wait cSocketThreads::m_CS // Doesn't really matter, but it blocks new clients
The deadlock is between ServerTickThread and cSocketThread
ServerTickThread callstack:
cSocketThread callstack: