HttpServerConnection#DataAvailableHandler(): be aware of being called multiple times concurrently

refs #6816
This commit is contained in:
Alexander A. Klimov 2018-12-03 19:05:41 +01:00 committed by Michael Friedrich
parent 797ecd1539
commit 1d6cec5a99
1 changed files with 5 additions and 1 deletions

View File

@ -351,7 +351,11 @@ void HttpServerConnection::DataAvailableHandler()
bool close = false;
if (!m_Stream->IsEof()) {
boost::recursive_mutex::scoped_lock lock(m_DataHandlerMutex);
boost::recursive_mutex::scoped_try_lock lock(m_DataHandlerMutex);
if (!lock.owns_lock()) {
Log(LogInformation, "HttpServerConnection", "Unable to process available data, they're already being processed in another thread");
return;
}
try {
while (ProcessMessage())