mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2026-10-23 00:27:48 +00:00
fix race on disconnect
between the time we check for `is_open` and the actual disconnect, the socket could already have been disconnected by another thread (TOCTOU). Furthermore, the disconnects can race causing a segfault or similar issue in the asio's internals.
This commit is contained in:
5 files changed
+29
-9
No files matched your search
+1
-1
@@ -76,7 +76,7 @@ void TPPSMonitor::operator()() {
|
||||
return true;
|
||||
});
|
||||
for (auto& ClientToKick : TimedOutClients) {
|
||||
ClientToKick->Disconnect("Timeout");
|
||||
Network().DisconnectClient(*ClientToKick, "Timeout");
|
||||
}
|
||||
TimedOutClients.clear();
|
||||
if (C == 0 || mInternalPPS == 0) {
|
||||
|
||||
Reference in new issue
Block a user