diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-04-03 21:23:30 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-04-03 21:23:30 +0200 |
| commit | f847cd4eeb8ce0d537ef793d8926cf28650724c4 (patch) | |
| tree | 5ecdc8abf04be2ccef700495e93b8835142a90cd /src/server/shared/Networking | |
| parent | f1b7ca1a91a93410b900da832df0a189f8fb3717 (diff) | |
Core/Networking: Fixed Socket::DelayedCloseSocket not working if write queue is empty when its called on linux and mac
Closes #29887
Diffstat (limited to 'src/server/shared/Networking')
| -rw-r--r-- | src/server/shared/Networking/Socket.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/server/shared/Networking/Socket.h b/src/server/shared/Networking/Socket.h index 511f94ed366..40f5820da92 100644 --- a/src/server/shared/Networking/Socket.h +++ b/src/server/shared/Networking/Socket.h @@ -164,7 +164,14 @@ public: } /// Marks the socket for closing after write buffer becomes empty - void DelayedCloseSocket() { _closing = true; } + void DelayedCloseSocket() + { + if (_closing.exchange(true)) + return; + + if (_writeQueue.empty()) + CloseSocket(); + } MessageBuffer& GetReadBuffer() { return _readBuffer; } |
