chore: Update boost usages to match 1.88 (#2355)

This commit is contained in:
Alex Kremer
2025-07-23 15:49:19 +01:00
committed by GitHub
parent bcaa5f3392
commit b29e2e4c88
40 changed files with 598 additions and 362 deletions

View File

@@ -21,10 +21,10 @@
#include "util/Coroutine.hpp"
#include "util/LoggerFixtures.hpp"
#include "util/Spawn.hpp"
#include <boost/asio/executor_work_guard.hpp>
#include <boost/asio/io_context.hpp>
#include <boost/asio/io_service.hpp>
#include <boost/asio/post.hpp>
#include <boost/asio/spawn.hpp>
#include <boost/asio/steady_timer.hpp>
@@ -43,7 +43,7 @@
struct AsyncAsioContextTest : virtual public NoLoggerFixture {
AsyncAsioContextTest()
{
work_.emplace(ctx_); // make sure ctx does not stop on its own
work_.emplace(boost::asio::make_work_guard(ctx_)); // make sure ctx does not stop on its own
runner_.emplace([&] { ctx_.run(); });
}
@@ -68,7 +68,7 @@ protected:
boost::asio::io_context ctx_;
private:
std::optional<boost::asio::io_service::work> work_;
std::optional<boost::asio::executor_work_guard<boost::asio::io_context::executor_type>> work_;
std::optional<std::thread> runner_;
};
@@ -100,13 +100,11 @@ struct SyncAsioContextTest : virtual public NoLoggerFixture {
void
runSpawn(F&& f, bool allowMockLeak = false)
{
using namespace boost::asio;
testing::MockFunction<void()> call;
if (allowMockLeak)
testing::Mock::AllowLeak(&call);
spawn(ctx_, [&, _ = make_work_guard(ctx_)](yield_context yield) {
util::spawn(ctx_, [&, _ = make_work_guard(ctx_)](boost::asio::yield_context yield) {
f(yield);
call.Call();
});
@@ -119,11 +117,9 @@ struct SyncAsioContextTest : virtual public NoLoggerFixture {
void
runSpawnWithTimeout(std::chrono::steady_clock::duration timeout, F&& f, bool allowMockLeak = false)
{
using namespace boost::asio;
boost::asio::io_context timerCtx;
steady_timer timer{timerCtx, timeout};
spawn(timerCtx, [this, &timer](yield_context yield) {
boost::asio::steady_timer timer{timerCtx, timeout};
util::spawn(timerCtx, [this, &timer](boost::asio::yield_context yield) {
boost::system::error_code errorCode;
timer.async_wait(yield[errorCode]);
ctx_.stop();
@@ -135,7 +131,7 @@ struct SyncAsioContextTest : virtual public NoLoggerFixture {
if (allowMockLeak)
testing::Mock::AllowLeak(&call);
spawn(ctx_, [&](yield_context yield) {
util::spawn(ctx_, [&](boost::asio::yield_context yield) {
f(yield);
call.Call();
});
@@ -151,22 +147,22 @@ struct SyncAsioContextTest : virtual public NoLoggerFixture {
runContext()
{
ctx_.run();
ctx_.reset();
ctx_.restart();
}
void
runContextFor(std::chrono::milliseconds duration)
{
ctx_.run_for(duration);
ctx_.reset();
ctx_.restart();
}
template <typename F>
static void
runSyncOperation(F&& f)
{
boost::asio::io_service ioc;
boost::asio::spawn(ioc, f);
boost::asio::io_context ioc;
util::spawn(ioc, f);
ioc.run();
}