fix: replace deprecated asio API.

This commit is contained in:
權少
2026-06-14 13:07:58 +08:00
parent 159c5c2ee4
commit c9ee717862
4 changed files with 13 additions and 16 deletions
+2 -3
View File
@@ -183,10 +183,9 @@ void client( std::shared_ptr< boost::asio::io_context > const& io_ctx, tcp::acce
print( tag(), ": echo-client started");
for (unsigned count = 0; count < iterations; ++count) {
tcp::resolver resolver( * io_ctx);
tcp::resolver::query query( tcp::v4(), "127.0.0.1", "9999");
tcp::resolver::iterator iterator = resolver.resolve( query);
tcp::resolver::results_type results = resolver.resolve( tcp::v4(), "127.0.0.1", "9999");
tcp::socket s( * io_ctx);
boost::asio::connect( s, iterator);
boost::asio::connect( s, results);
for (unsigned msg = 0; msg < 1; ++msg) {
std::ostringstream msgbuf;
msgbuf << "from " << fiber_names.lookup() << " " << count << "." << msg;
+2 -3
View File
@@ -28,10 +28,9 @@ int main( int argc, char* argv[]) {
}
boost::asio::io_context io_context;
tcp::resolver resolver( io_context);
tcp::resolver::query query( tcp::v4(), argv[1], "9997");
tcp::resolver::iterator iterator = resolver.resolve(query);
tcp::resolver::results_type results = resolver.resolve( tcp::v4(), argv[1], "9997");
tcp::socket s( io_context);
boost::asio::connect( s, iterator);
boost::asio::connect( s, results);
char msg[max_length];
std::string queue( argv[2]);
std::memset( msg, '\0', max_length);
+2 -3
View File
@@ -28,10 +28,9 @@ int main( int argc, char* argv[]) {
}
boost::asio::io_context io_context;
tcp::resolver resolver( io_context);
tcp::resolver::query query( tcp::v4(), argv[1], "9998");
tcp::resolver::iterator iterator = resolver.resolve( query);
tcp::resolver::results_type results = resolver.resolve( tcp::v4(), argv[1], "9998");
tcp::socket s( io_context);
boost::asio::connect( s, iterator);
boost::asio::connect( s, results);
char msg[max_length];
std::string queue( argv[2]);
std::memset( msg, '\0', max_length);
+7 -7
View File
@@ -49,11 +49,11 @@ public:
struct service : public boost::asio::io_context::service {
static boost::asio::io_context::id id;
std::unique_ptr< boost::asio::io_context::work > work_;
boost::asio::executor_work_guard< boost::asio::io_context::executor_type > work_;
service( boost::asio::io_context & io_ctx) :
boost::asio::io_context::service( io_ctx),
work_{ new boost::asio::io_context::work( io_ctx) } {
service( boost::asio::execution_context & ctx) :
boost::asio::io_context::service( static_cast< boost::asio::io_context & >( ctx) ),
work_{ boost::asio::make_work_guard( static_cast< boost::asio::io_context & >( ctx) ) } {
}
virtual ~service() {}
@@ -61,7 +61,7 @@ public:
service( service const&) = delete;
service & operator=( service const&) = delete;
void shutdown_service() override final {
void shutdown() {
work_.reset();
}
};
@@ -71,10 +71,10 @@ public:
round_robin( std::shared_ptr< boost::asio::io_context > const& io_ctx) :
io_ctx_( io_ctx),
suspend_timer_( * io_ctx_) {
// We use add_service() very deliberately. This will throw
// We use make_service() very deliberately. This will throw
// service_already_exists if you pass the same io_context instance to
// more than one round_robin instance.
boost::asio::add_service( * io_ctx_, new service( * io_ctx_) );
boost::asio::make_service< service >( static_cast< boost::asio::execution_context & >( * io_ctx_) );
boost::asio::post( * io_ctx_, [this]() mutable {
//]
//[asio_rr_service_lambda