Add handler tracking locations to http operations

This commit is contained in:
Christopher Kohlhoff authored and Richard Hodges committed 2020-08-28 13:26:21 +02:00
1 parent 5641d9498b
commit 11385141ea
3 files changed
+62 -5

No files matched your search

+34 -5
View File
@@ -60,6 +60,10 @@ class write_some_op
error_code& ec,
ConstBufferSequence const& buffers)
{
BOOST_ASIO_HANDLER_LOCATION((
__FILE__, __LINE__,
"http::async_write_some"));
invoked = true;
ec = {};
op_.s_.async_write_some(
@@ -93,6 +97,11 @@ public:
if(ec)
{
BOOST_ASSERT(! f.invoked);
BOOST_ASIO_HANDLER_LOCATION((
__FILE__, __LINE__,
"http::async_write_some"));
return net::post(
s_.get_executor(),
beast::bind_front_handler(
@@ -107,6 +116,10 @@ public:
BOOST_ASSERT(sr_.is_done());
}
BOOST_ASIO_HANDLER_LOCATION((
__FILE__, __LINE__,
"http::async_write_some"));
return net::post(
s_.get_executor(),
beast::bind_front_handler(
@@ -191,16 +204,28 @@ public:
if(Predicate{}(sr_))
{
BOOST_ASIO_CORO_YIELD
net::post(
s_.get_executor(),
std::move(*this));
{
BOOST_ASIO_HANDLER_LOCATION((
__FILE__, __LINE__,
"http::async_write"));
net::post(
s_.get_executor(),
std::move(*this));
}
goto upcall;
}
for(;;)
{
BOOST_ASIO_CORO_YIELD
beast::http::async_write_some(
s_, sr_, std::move(*this));
{
BOOST_ASIO_HANDLER_LOCATION((
__FILE__, __LINE__,
"http::async_write"));
beast::http::async_write_some(
s_, sr_, std::move(*this));
}
bytes_transferred_ += bytes_transferred;
if(ec)
goto upcall;
@@ -248,6 +273,10 @@ public:
void
operator()()
{
BOOST_ASIO_HANDLER_LOCATION((
__FILE__, __LINE__,
"http::async_write(msg)"));
async_write(s_, sr_, std::move(*this));
}