mirror of
https://github.com/boostorg/beast.git
synced 2025-07-30 21:07:26 +02:00
Use bind_front_handler:
The implementation uses bind_front_handler to reduce the resources consumed when instantiating templates during compilation.
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
Version 191:
|
||||
|
||||
* Add bind_front_handler
|
||||
* Use bind_front_handler
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
@ -424,7 +424,8 @@ operator()(boost::beast::error_code ec, std::size_t bytes_transferred)
|
||||
BOOST_ASIO_CORO_YIELD
|
||||
boost::asio::post(
|
||||
stream_.get_executor(),
|
||||
beast::bind_handler(std::move(*this), ec, 0));
|
||||
beast::bind_front_handler(
|
||||
std::move(*this), ec, 0));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -263,7 +263,7 @@ async_read_some(
|
||||
if(in_->fc->fail(ec))
|
||||
return boost::asio::post(
|
||||
in_->ioc.get_executor(),
|
||||
bind_handler(
|
||||
bind_front_handler(
|
||||
std::move(init.completion_handler),
|
||||
ec,
|
||||
0));
|
||||
@ -281,7 +281,7 @@ async_read_some(
|
||||
++in_->nread;
|
||||
boost::asio::post(
|
||||
in_->ioc.get_executor(),
|
||||
bind_handler(
|
||||
bind_front_handler(
|
||||
std::move(init.completion_handler),
|
||||
error_code{},
|
||||
bytes_transferred));
|
||||
@ -297,7 +297,7 @@ async_read_some(
|
||||
ec = boost::asio::error::connection_reset;
|
||||
boost::asio::post(
|
||||
in_->ioc.get_executor(),
|
||||
bind_handler(
|
||||
bind_front_handler(
|
||||
std::move(init.completion_handler),
|
||||
ec,
|
||||
0));
|
||||
@ -380,7 +380,7 @@ async_write_some(ConstBufferSequence const& buffers,
|
||||
if(! out)
|
||||
return boost::asio::post(
|
||||
in_->ioc.get_executor(),
|
||||
bind_handler(
|
||||
bind_front_handler(
|
||||
std::move(init.completion_handler),
|
||||
boost::asio::error::connection_reset,
|
||||
0));
|
||||
@ -391,7 +391,7 @@ async_write_some(ConstBufferSequence const& buffers,
|
||||
if(in_->fc->fail(ec))
|
||||
return boost::asio::post(
|
||||
in_->ioc.get_executor(),
|
||||
bind_handler(
|
||||
bind_front_handler(
|
||||
std::move(init.completion_handler),
|
||||
ec,
|
||||
0));
|
||||
@ -407,7 +407,7 @@ async_write_some(ConstBufferSequence const& buffers,
|
||||
++in_->nwrite;
|
||||
boost::asio::post(
|
||||
in_->ioc.get_executor(),
|
||||
bind_handler(
|
||||
bind_front_handler(
|
||||
std::move(init.completion_handler),
|
||||
error_code{},
|
||||
bytes_transferred));
|
||||
@ -447,7 +447,7 @@ TeardownHandler&& handler)
|
||||
s.in_->fc->fail(ec))
|
||||
return boost::asio::post(
|
||||
s.get_executor(),
|
||||
bind_handler(std::move(handler), ec));
|
||||
bind_front_handler(std::move(handler), ec));
|
||||
s.close();
|
||||
if( s.in_->fc &&
|
||||
s.in_->fc->fail(ec))
|
||||
@ -457,7 +457,7 @@ TeardownHandler&& handler)
|
||||
|
||||
boost::asio::post(
|
||||
s.get_executor(),
|
||||
bind_handler(std::move(handler), ec));
|
||||
bind_front_handler(std::move(handler), ec));
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@ -513,7 +513,7 @@ class stream::read_op : public stream::read_op_base
|
||||
++s.nread;
|
||||
boost::asio::post(
|
||||
s.ioc.get_executor(),
|
||||
bind_handler(
|
||||
bind_front_handler(
|
||||
std::move(h),
|
||||
error_code{},
|
||||
bytes_transferred));
|
||||
@ -532,7 +532,7 @@ class stream::read_op : public stream::read_op_base
|
||||
ec = boost::asio::error::connection_reset;
|
||||
boost::asio::post(
|
||||
s.ioc.get_executor(),
|
||||
bind_handler(std::move(h), ec, 0));
|
||||
bind_front_handler(std::move(h), ec, 0));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -126,7 +126,7 @@ read_some_op<MutableBufferSequence, Handler>::operator()(
|
||||
step_ = 3;
|
||||
return boost::asio::post(
|
||||
s_.get_executor(),
|
||||
bind_handler(std::move(*this), ec, 0));
|
||||
bind_front_handler(std::move(*this), ec, 0));
|
||||
|
||||
case 1:
|
||||
// upcall
|
||||
|
@ -7,8 +7,8 @@
|
||||
// Official repository: https://github.com/boostorg/beast
|
||||
//
|
||||
|
||||
#ifndef BOOST_BEAST_HTTP_IMPL_READ_IPP_HPP
|
||||
#define BOOST_BEAST_HTTP_IMPL_READ_IPP_HPP
|
||||
#ifndef BOOST_BEAST_HTTP_IMPL_READ_IPP
|
||||
#define BOOST_BEAST_HTTP_IMPL_READ_IPP
|
||||
|
||||
#include <boost/beast/http/type_traits.hpp>
|
||||
#include <boost/beast/http/error.hpp>
|
||||
@ -182,7 +182,7 @@ operator()(
|
||||
BOOST_ASIO_CORO_YIELD
|
||||
boost::asio::post(
|
||||
s_.get_executor(),
|
||||
bind_handler(std::move(*this),
|
||||
bind_front_handler(std::move(*this),
|
||||
ec, bytes_transferred_));
|
||||
}
|
||||
h_(ec, bytes_transferred_);
|
||||
@ -305,7 +305,7 @@ operator()(
|
||||
{
|
||||
BOOST_ASIO_CORO_YIELD
|
||||
boost::asio::post(s_.get_executor(),
|
||||
bind_handler(std::move(*this), ec));
|
||||
bind_front_handler(std::move(*this), ec));
|
||||
goto upcall;
|
||||
}
|
||||
for(;;)
|
||||
|
@ -147,7 +147,7 @@ operator()()
|
||||
BOOST_ASSERT(! f.invoked);
|
||||
return boost::asio::post(
|
||||
s_.get_executor(),
|
||||
bind_handler(std::move(*this), ec, 0));
|
||||
bind_front_handler(std::move(*this), ec, 0));
|
||||
}
|
||||
if(f.invoked)
|
||||
{
|
||||
@ -160,7 +160,7 @@ operator()()
|
||||
}
|
||||
return boost::asio::post(
|
||||
s_.get_executor(),
|
||||
bind_handler(std::move(*this), ec, 0));
|
||||
bind_front_handler(std::move(*this), ec, 0));
|
||||
}
|
||||
|
||||
template<
|
||||
|
@ -269,7 +269,7 @@ operator()(error_code ec, std::size_t)
|
||||
BOOST_ASIO_CORO_YIELD
|
||||
boost::asio::post(
|
||||
d.ws.get_executor(),
|
||||
bind_handler(std::move(*this), ec));
|
||||
bind_front_handler(std::move(*this), ec));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -304,7 +304,7 @@ operator()(
|
||||
BOOST_ASIO_CORO_YIELD
|
||||
boost::asio::post(
|
||||
d.ws.get_executor(),
|
||||
bind_handler(std::move(*this), ec));
|
||||
bind_front_handler(std::move(*this), ec));
|
||||
}
|
||||
{
|
||||
auto wg = std::move(d.wg);
|
||||
|
@ -140,7 +140,7 @@ operator()(error_code ec, std::size_t)
|
||||
BOOST_ASIO_CORO_YIELD
|
||||
boost::asio::post(
|
||||
d.ws.get_executor(),
|
||||
bind_handler(std::move(*this), ec));
|
||||
bind_front_handler(std::move(*this), ec));
|
||||
goto upcall;
|
||||
}
|
||||
}
|
||||
|
@ -705,7 +705,7 @@ operator()(
|
||||
BOOST_ASIO_CORO_YIELD
|
||||
boost::asio::post(
|
||||
ws_.get_executor(),
|
||||
bind_handler(std::move(*this),
|
||||
bind_front_handler(std::move(*this),
|
||||
ec, bytes_written_));
|
||||
}
|
||||
h_(ec, bytes_written_);
|
||||
@ -813,7 +813,7 @@ operator()(
|
||||
if(ec)
|
||||
boost::asio::post(
|
||||
ws_.get_executor(),
|
||||
bind_handler(
|
||||
bind_front_handler(
|
||||
std::move(*this), ec, 0));
|
||||
else
|
||||
read_some_op<typename
|
||||
|
@ -118,7 +118,7 @@ operator()(error_code ec, std::size_t bytes_transferred)
|
||||
BOOST_ASIO_CORO_YIELD
|
||||
boost::asio::post(
|
||||
s_.get_executor(),
|
||||
bind_handler(std::move(*this), ec, 0));
|
||||
bind_front_handler(std::move(*this), ec, 0));
|
||||
goto upcall;
|
||||
}
|
||||
for(;;)
|
||||
|
@ -578,7 +578,9 @@ operator()(
|
||||
BOOST_ASIO_CORO_YIELD
|
||||
boost::asio::post(
|
||||
ws_.get_executor(),
|
||||
bind_handler(std::move(*this), ec, bytes_transferred_));
|
||||
bind_front_handler(
|
||||
std::move(*this),
|
||||
ec, bytes_transferred_));
|
||||
}
|
||||
h_(ec, bytes_transferred_);
|
||||
}
|
||||
|
Reference in New Issue
Block a user