From d22ff30e5b5b26349a38ad4060d0bf91065056ad Mon Sep 17 00:00:00 2001 From: Adam Emerson Date: Tue, 19 Nov 2024 13:45:26 -0500 Subject: [PATCH] gcc11: Pull out exec from cls version Signed-off-by: Adam Emerson --- src/neorados/cls/version.h | 29 +++++++++++++++++++-- src/test/cls_version/test_neocls_version.cc | 2 ++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/neorados/cls/version.h b/src/neorados/cls/version.h index c5bc08bf66000..9eeff9b1011d2 100644 --- a/src/neorados/cls/version.h +++ b/src/neorados/cls/version.h @@ -22,11 +22,10 @@ /// `VersionCond`. The byte strings are incomparable. Two versions /// with different strings will always conflict. -#include -#include #include #include +#include #include #include "include/neorados/RADOS.hpp" @@ -166,6 +165,7 @@ namespace neorados::cls::version { }}; } +#if 0 // Disabled until we're off GCC11 /// \brief Read the stored object version /// /// Execute an asynchronous operation that reads the stored version. @@ -190,4 +190,29 @@ inline auto read(RADOS& r, Object o, IOContext ioc, return std::move(ret.objv); }, std::forward(token)); } +#endif + +/// \brief Read the stored object version +/// +/// Execute an asynchronous operation that reads the stored version. +/// +/// \param r RADOS handle +/// \param o Object to query +/// \param ioc IOContext determining the object location +/// +/// \return The object version in a way appropriate to the completion +/// token. See Boost.Asio documentation. +template +inline boost::asio::awaitable +read(RADOS& r, Object o, IOContext ioc, + // Hack to avoid changing most current uses + boost::asio::use_awaitable_t = boost::asio::use_awaitable) +{ + ReadOp op; + obj_version objv; + op.exec(read(&objv)); + co_await r.execute(std::move(o), std::move(ioc), std::move(op), + nullptr, boost::asio::use_awaitable); + co_return objv; +} } // namespace neorados::cls::version diff --git a/src/test/cls_version/test_neocls_version.cc b/src/test/cls_version/test_neocls_version.cc index 2bfb66c231c37..23e7c940752f9 100644 --- a/src/test/cls_version/test_neocls_version.cc +++ b/src/test/cls_version/test_neocls_version.cc @@ -199,6 +199,7 @@ CORO_TEST_F(neocls_version, test_version_inc_check, NeoRadosTest) operation_canceled); } +#if 0 // Disabled until we get rid of GCC11. TEST(neocls_version_bare, lambdata) { asio::io_context c; @@ -234,3 +235,4 @@ TEST(neocls_version_bare, lambdata) c.run(); ASSERT_EQ(iver, ever); } +#endif -- 2.39.5