From 179f7767bfd04c9f4e1d130a796439bf52dd5618 Mon Sep 17 00:00:00 2001 From: qicosmos Date: Tue, 30 Sep 2025 11:24:41 +0800 Subject: [PATCH] fix for msvc --- include/rest_rpc/rpc_router.hpp | 3 +++ tests/test_rest_rpc1.cpp | 25 +++++++++++++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/include/rest_rpc/rpc_router.hpp b/include/rest_rpc/rpc_router.hpp index f4d40dd..c02675c 100644 --- a/include/rest_rpc/rpc_router.hpp +++ b/include/rest_rpc/rpc_router.hpp @@ -174,6 +174,7 @@ private: } } } + co_return; } template @@ -213,6 +214,7 @@ private: } } } + co_return; } template @@ -266,6 +268,7 @@ private: } } } + co_return; } std::unordered_map( diff --git a/tests/test_rest_rpc1.cpp b/tests/test_rest_rpc1.cpp index 36550c3..d950d58 100644 --- a/tests/test_rest_rpc1.cpp +++ b/tests/test_rest_rpc1.cpp @@ -40,6 +40,17 @@ int round1(int i) { return i; } std::string_view echo_sv(std::string_view str) { return str; } +template +asio::awaitable response(auto ctx) { + auto ec = co_await ctx.response("test"); + if (ec) { + REST_LOG_ERROR << "response error: " << ec.message(); + } + ec = co_await ctx.response("test"); + REST_LOG_ERROR << ec.message(); + CHECK(ec); +} + std::string_view delay_response(std::string_view str) { auto &ctx = rpc_context::context(); // set_delay before response in another thread @@ -52,18 +63,8 @@ std::string_view delay_response(std::string_view str) { // REST_LOG_ERROR << "response error: " << ec.message(); // } auto executor = ctx.get_executor(); - auto coro = [ctx = std::move(ctx)]() mutable -> asio::awaitable { - auto ec = co_await ctx.response("test"); - if (ec) { - REST_LOG_ERROR << "response error: " << ec.message(); - } - ec = co_await ctx.response("test"); - REST_LOG_ERROR << ec.message(); - CHECK(ec); - }; - - async_start(executor, std::move(coro)); - // asio::co_spawn(executor, std::move(coro), asio::detached); + // async_start(executor, response(std::move(ctx))); + asio::co_spawn(executor, response(std::move(ctx)), asio::detached); }); thd.detach();