HttpServerConnection#StartStreaming(): auto-detect disconnection

This commit is contained in:
Alexander A. Klimov 2019-04-03 09:50:52 +02:00
parent c284cf0b68
commit 28d46052b0
1 changed files with 18 additions and 0 deletions

View File

@ -93,7 +93,25 @@ void HttpServerConnection::Disconnect()
void HttpServerConnection::StartStreaming()
{
namespace asio = boost::asio;
m_HasStartedStreaming = true;
HttpServerConnection::Ptr keepAlive (this);
asio::spawn(m_IoStrand, [this, keepAlive](asio::yield_context yc) {
if (!m_ShuttingDown) {
char buf[128];
asio::mutable_buffer readBuf (buf, 128);
boost::system::error_code ec;
do {
m_Stream->async_read_some(readBuf, yc[ec]);
} while (!ec);
Disconnect();
}
});
}
static inline