]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/asio/example/cpp17/coroutines_ts/echo_server.cpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / libs / asio / example / cpp17 / coroutines_ts / echo_server.cpp
index 7ca12c69ae6c06ed235102a118e2abdca994bb3b..ed42fa570a67885318256ed782da46224cb81463 100644 (file)
@@ -23,6 +23,11 @@ using boost::asio::detached;
 using boost::asio::use_awaitable;
 namespace this_coro = boost::asio::this_coro;
 
+#if defined(BOOST_ASIO_ENABLE_HANDLER_TRACKING)
+# define use_awaitable \
+  boost::asio::use_awaitable_t(__FILE__, __LINE__, __PRETTY_FUNCTION__)
+#endif
+
 awaitable<void> echo(tcp::socket socket)
 {
   try
@@ -47,12 +52,7 @@ awaitable<void> listener()
   for (;;)
   {
     tcp::socket socket = co_await acceptor.async_accept(use_awaitable);
-    co_spawn(executor,
-        [socket = std::move(socket)]() mutable
-        {
-          return echo(std::move(socket));
-        },
-        detached);
+    co_spawn(executor, echo(std::move(socket)), detached);
   }
 }
 
@@ -65,7 +65,7 @@ int main()
     boost::asio::signal_set signals(io_context, SIGINT, SIGTERM);
     signals.async_wait([&](auto, auto){ io_context.stop(); });
 
-    co_spawn(io_context, listener, detached);
+    co_spawn(io_context, listener(), detached);
 
     io_context.run();
   }