aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Server/WorldSocket.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp
index 625ebff8471..508fc0351a9 100644
--- a/src/server/game/Server/WorldSocket.cpp
+++ b/src/server/game/Server/WorldSocket.cpp
@@ -445,9 +445,15 @@ int WorldSocket::Update (void)
if (closing_)
return -1;
- if (m_OutActive || (m_OutBuffer->length() == 0 && msg_queue()->is_empty()))
+ if (m_OutActive)
return 0;
+ {
+ ACE_GUARD_RETURN (LockType, Guard, m_OutBufferLock, 0);
+ if (m_OutBuffer->length() == 0 && msg_queue()->is_empty())
+ return 0;
+ }
+
int ret;
do
ret = handle_output(get_handle());