mirror of
https://github.com/facebook/rocksdb.git
synced 2024-12-04 20:02:50 +00:00
0e04ef1a96
Summary: The following rules were deshimmed: ``` //folly/experimental/coro:accumulate -> //folly/coro:accumulate //folly/experimental/coro:async_generator -> //folly/coro:async_generator //folly/experimental/coro:async_pipe -> //folly/coro:async_pipe //folly/experimental/coro:async_scope -> //folly/coro:async_scope //folly/experimental/coro:async_stack -> //folly/coro:async_stack //folly/experimental/coro:baton -> //folly/coro:baton //folly/experimental/coro:blocking_wait -> //folly/coro:blocking_wait //folly/experimental/coro:collect -> //folly/coro:collect //folly/experimental/coro:concat -> //folly/coro:concat //folly/experimental/coro:coroutine -> //folly/coro:coroutine //folly/experimental/coro:current_executor -> //folly/coro:current_executor //folly/experimental/coro:detach_on_cancel -> //folly/coro:detach_on_cancel //folly/experimental/coro:detail_barrier -> //folly/coro:detail_barrier //folly/experimental/coro:detail_barrier_task -> //folly/coro:detail_barrier_task //folly/experimental/coro:detail_current_async_frame -> //folly/coro:detail_current_async_frame //folly/experimental/coro:detail_helpers -> //folly/coro:detail_helpers //folly/experimental/coro:detail_malloc -> //folly/coro:detail_malloc //folly/experimental/coro:detail_manual_lifetime -> //folly/coro:detail_manual_lifetime //folly/experimental/coro:detail_traits -> //folly/coro:detail_traits //folly/experimental/coro:filter -> //folly/coro:filter //folly/experimental/coro:future_util -> //folly/coro:future_util //folly/experimental/coro:generator -> //folly/coro:generator //folly/experimental/coro:gmock_helpers -> //folly/coro:gmock_helpers //folly/experimental/coro:gtest_helpers -> //folly/coro:gtest_helpers //folly/experimental/coro:inline_task -> //folly/coro:inline_task //folly/experimental/coro:invoke -> //folly/coro:invoke //folly/experimental/coro:merge -> //folly/coro:merge //folly/experimental/coro:mutex -> //folly/coro:mutex //folly/experimental/coro:promise -> //folly/coro:promise //folly/experimental/coro:result -> //folly/coro:result //folly/experimental/coro:retry -> //folly/coro:retry //folly/experimental/coro:rust_adaptors -> //folly/coro:rust_adaptors //folly/experimental/coro:scope_exit -> //folly/coro:scope_exit //folly/experimental/coro:shared_lock -> //folly/coro:shared_lock //folly/experimental/coro:shared_mutex -> //folly/coro:shared_mutex //folly/experimental/coro:sleep -> //folly/coro:sleep //folly/experimental/coro:small_unbounded_queue -> //folly/coro:small_unbounded_queue //folly/experimental/coro:task -> //folly/coro:task //folly/experimental/coro:timed_wait -> //folly/coro:timed_wait //folly/experimental/coro:timeout -> //folly/coro:timeout //folly/experimental/coro:traits -> //folly/coro:traits //folly/experimental/coro:transform -> //folly/coro:transform //folly/experimental/coro:unbounded_queue -> //folly/coro:unbounded_queue //folly/experimental/coro:via_if_async -> //folly/coro:via_if_async //folly/experimental/coro:with_async_stack -> //folly/coro:with_async_stack //folly/experimental/coro:with_cancellation -> //folly/coro:with_cancellation //folly/experimental/coro:bounded_queue -> //folly/coro:bounded_queue //folly/experimental/coro:shared_promise -> //folly/coro:shared_promise //folly/experimental/coro:cleanup -> //folly/coro:cleanup //folly/experimental/coro:auto_cleanup_fwd -> //folly/coro:auto_cleanup_fwd //folly/experimental/coro:auto_cleanup -> //folly/coro:auto_cleanup ``` The following headers were deshimmed: ``` folly/experimental/coro/Accumulate.h -> folly/coro/Accumulate.h folly/experimental/coro/Accumulate-inl.h -> folly/coro/Accumulate-inl.h folly/experimental/coro/AsyncGenerator.h -> folly/coro/AsyncGenerator.h folly/experimental/coro/AsyncPipe.h -> folly/coro/AsyncPipe.h folly/experimental/coro/AsyncScope.h -> folly/coro/AsyncScope.h folly/experimental/coro/AsyncStack.h -> folly/coro/AsyncStack.h folly/experimental/coro/Baton.h -> folly/coro/Baton.h folly/experimental/coro/BlockingWait.h -> folly/coro/BlockingWait.h folly/experimental/coro/Collect.h -> folly/coro/Collect.h folly/experimental/coro/Collect-inl.h -> folly/coro/Collect-inl.h folly/experimental/coro/Concat.h -> folly/coro/Concat.h folly/experimental/coro/Concat-inl.h -> folly/coro/Concat-inl.h folly/experimental/coro/Coroutine.h -> folly/coro/Coroutine.h folly/experimental/coro/CurrentExecutor.h -> folly/coro/CurrentExecutor.h folly/experimental/coro/DetachOnCancel.h -> folly/coro/DetachOnCancel.h folly/experimental/coro/detail/Barrier.h -> folly/coro/detail/Barrier.h folly/experimental/coro/detail/BarrierTask.h -> folly/coro/detail/BarrierTask.h folly/experimental/coro/detail/CurrentAsyncFrame.h -> folly/coro/detail/CurrentAsyncFrame.h folly/experimental/coro/detail/Helpers.h -> folly/coro/detail/Helpers.h folly/experimental/coro/detail/Malloc.h -> folly/coro/detail/Malloc.h folly/experimental/coro/detail/ManualLifetime.h -> folly/coro/detail/ManualLifetime.h folly/experimental/coro/detail/Traits.h -> folly/coro/detail/Traits.h folly/experimental/coro/Filter.h -> folly/coro/Filter.h folly/experimental/coro/Filter-inl.h -> folly/coro/Filter-inl.h folly/experimental/coro/FutureUtil.h -> folly/coro/FutureUtil.h folly/experimental/coro/Generator.h -> folly/coro/Generator.h folly/experimental/coro/GmockHelpers.h -> folly/coro/GmockHelpers.h folly/experimental/coro/GtestHelpers.h -> folly/coro/GtestHelpers.h folly/experimental/coro/detail/InlineTask.h -> folly/coro/detail/InlineTask.h folly/experimental/coro/Invoke.h -> folly/coro/Invoke.h folly/experimental/coro/Merge.h -> folly/coro/Merge.h folly/experimental/coro/Merge-inl.h -> folly/coro/Merge-inl.h folly/experimental/coro/Mutex.h -> folly/coro/Mutex.h folly/experimental/coro/Promise.h -> folly/coro/Promise.h folly/experimental/coro/Result.h -> folly/coro/Result.h folly/experimental/coro/Retry.h -> folly/coro/Retry.h folly/experimental/coro/RustAdaptors.h -> folly/coro/RustAdaptors.h folly/experimental/coro/ScopeExit.h -> folly/coro/ScopeExit.h folly/experimental/coro/SharedLock.h -> folly/coro/SharedLock.h folly/experimental/coro/SharedMutex.h -> folly/coro/SharedMutex.h folly/experimental/coro/Sleep.h -> folly/coro/Sleep.h folly/experimental/coro/Sleep-inl.h -> folly/coro/Sleep-inl.h folly/experimental/coro/SmallUnboundedQueue.h -> folly/coro/SmallUnboundedQueue.h folly/experimental/coro/Task.h -> folly/coro/Task.h folly/experimental/coro/TimedWait.h -> folly/coro/TimedWait.h folly/experimental/coro/Timeout.h -> folly/coro/Timeout.h folly/experimental/coro/Timeout-inl.h -> folly/coro/Timeout-inl.h folly/experimental/coro/Traits.h -> folly/coro/Traits.h folly/experimental/coro/Transform.h -> folly/coro/Transform.h folly/experimental/coro/Transform-inl.h -> folly/coro/Transform-inl.h folly/experimental/coro/UnboundedQueue.h -> folly/coro/UnboundedQueue.h folly/experimental/coro/ViaIfAsync.h -> folly/coro/ViaIfAsync.h folly/experimental/coro/WithAsyncStack.h -> folly/coro/WithAsyncStack.h folly/experimental/coro/WithCancellation.h -> folly/coro/WithCancellation.h folly/experimental/coro/BoundedQueue.h -> folly/coro/BoundedQueue.h folly/experimental/coro/SharedPromise.h -> folly/coro/SharedPromise.h folly/experimental/coro/Cleanup.h -> folly/coro/Cleanup.h folly/experimental/coro/AutoCleanup-fwd.h -> folly/coro/AutoCleanup-fwd.h folly/experimental/coro/AutoCleanup.h -> folly/coro/AutoCleanup.h ``` This is a codemod. It was automatically generated and will be landed once it is approved and tests are passing in sandcastle. You have been added as a reviewer by Sentinel or Butterfly. Autodiff project: dcoro Autodiff partition: fbcode.internal_repo_rocksdb Autodiff bookmark: ad.dcoro.fbcode.internal_repo_rocksdb Reviewed By: dtolnay Differential Revision: D62684411 fbshipit-source-id: 8dbd31ab64fcdd99435d322035b9668e3200e0a3
113 lines
4.3 KiB
C++
113 lines
4.3 KiB
C++
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
//
|
|
// This source code is licensed under both the GPLv2 (found in the
|
|
// COPYING file in the root directory) and Apache 2.0 License
|
|
// (found in the LICENSE.Apache file in the root directory).
|
|
|
|
#if defined(USE_COROUTINES)
|
|
#include "folly/coro/Coroutine.h"
|
|
#include "folly/coro/Task.h"
|
|
#endif
|
|
#include "rocksdb/rocksdb_namespace.h"
|
|
|
|
// This file has two sctions. The first section applies to all instances of
|
|
// header file inclusion and has an include guard. The second section is
|
|
// meant for multiple inclusions in the same source file, and is idempotent.
|
|
namespace ROCKSDB_NAMESPACE {
|
|
|
|
#ifndef UTIL_CORO_UTILS_H_
|
|
#define UTIL_CORO_UTILS_H_
|
|
|
|
#if defined(USE_COROUTINES)
|
|
|
|
// The follwoing macros expand to regular and coroutine function
|
|
// declarations for a given function
|
|
#define DECLARE_SYNC_AND_ASYNC(__ret_type__, __func_name__, ...) \
|
|
__ret_type__ __func_name__(__VA_ARGS__); \
|
|
folly::coro::Task<__ret_type__> __func_name__##Coroutine(__VA_ARGS__);
|
|
|
|
#define DECLARE_SYNC_AND_ASYNC_OVERRIDE(__ret_type__, __func_name__, ...) \
|
|
__ret_type__ __func_name__(__VA_ARGS__) override; \
|
|
folly::coro::Task<__ret_type__> __func_name__##Coroutine(__VA_ARGS__) \
|
|
override;
|
|
|
|
#define DECLARE_SYNC_AND_ASYNC_CONST(__ret_type__, __func_name__, ...) \
|
|
__ret_type__ __func_name__(__VA_ARGS__) const; \
|
|
folly::coro::Task<__ret_type__> __func_name__##Coroutine(__VA_ARGS__) const;
|
|
|
|
constexpr bool using_coroutines() { return true; }
|
|
#else // !USE_COROUTINES
|
|
|
|
// The follwoing macros expand to a regular function declaration for a given
|
|
// function
|
|
#define DECLARE_SYNC_AND_ASYNC(__ret_type__, __func_name__, ...) \
|
|
__ret_type__ __func_name__(__VA_ARGS__);
|
|
|
|
#define DECLARE_SYNC_AND_ASYNC_OVERRIDE(__ret_type__, __func_name__, ...) \
|
|
__ret_type__ __func_name__(__VA_ARGS__) override;
|
|
|
|
#define DECLARE_SYNC_AND_ASYNC_CONST(__ret_type__, __func_name__, ...) \
|
|
__ret_type__ __func_name__(__VA_ARGS__) const;
|
|
|
|
constexpr bool using_coroutines() { return false; }
|
|
#endif // USE_COROUTINES
|
|
#endif // UTIL_CORO_UTILS_H_
|
|
|
|
// The following section of the file is meant to be included twice in a
|
|
// source file - once defining WITH_COROUTINES and once defining
|
|
// WITHOUT_COROUTINES
|
|
#undef DEFINE_SYNC_AND_ASYNC
|
|
#undef CO_AWAIT
|
|
#undef CO_RETURN
|
|
|
|
#if defined(WITH_COROUTINES) && defined(USE_COROUTINES)
|
|
|
|
// This macro should be used in the beginning of the function
|
|
// definition. The declaration should have been done using one of the
|
|
// DECLARE_SYNC_AND_ASYNC* macros. It expands to the return type and
|
|
// the function name with the Coroutine suffix. For example -
|
|
// DEFINE_SYNC_AND_ASYNC(int, foo)(bool bar) {}
|
|
// would expand to -
|
|
// folly::coro::Task<int> fooCoroutine(bool bar) {}
|
|
#define DEFINE_SYNC_AND_ASYNC(__ret_type__, __func_name__) \
|
|
folly::coro::Task<__ret_type__> __func_name__##Coroutine
|
|
|
|
// This macro should be used to call a function that might be a
|
|
// coroutine. It expands to the correct function name and prefixes
|
|
// the co_await operator if necessary. For example -
|
|
// s = CO_AWAIT(foo)(true);
|
|
// if the code is compiled WITH_COROUTINES, would expand to
|
|
// s = co_await fooCoroutine(true);
|
|
// if compiled WITHOUT_COROUTINES, would expand to
|
|
// s = foo(true);
|
|
#define CO_AWAIT(__func_name__) co_await __func_name__##Coroutine
|
|
|
|
#define CO_RETURN co_return
|
|
|
|
#elif defined(WITHOUT_COROUTINES)
|
|
|
|
// This macro should be used in the beginning of the function
|
|
// definition. The declaration should have been done using one of the
|
|
// DECLARE_SYNC_AND_ASYNC* macros. It expands to the return type and
|
|
// the function name without the Coroutine suffix. For example -
|
|
// DEFINE_SYNC_AND_ASYNC(int, foo)(bool bar) {}
|
|
// would expand to -
|
|
// int foo(bool bar) {}
|
|
#define DEFINE_SYNC_AND_ASYNC(__ret_type__, __func_name__) \
|
|
__ret_type__ __func_name__
|
|
|
|
// This macro should be used to call a function that might be a
|
|
// coroutine. It expands to the correct function name and prefixes
|
|
// the co_await operator if necessary. For example -
|
|
// s = CO_AWAIT(foo)(true);
|
|
// if the code is compiled WITH_COROUTINES, would expand to
|
|
// s = co_await fooCoroutine(true);
|
|
// if compiled WITHOUT_COROUTINES, would expand to
|
|
// s = foo(true);
|
|
#define CO_AWAIT(__func_name__) __func_name__
|
|
|
|
#define CO_RETURN return
|
|
|
|
#endif // DO_NOT_USE_COROUTINES
|
|
} // namespace ROCKSDB_NAMESPACE
|