Fix fbcode internal build failure (#10041)

Summary:
The build failed due to different namespaces for coroutines (std::experimental vs std) based on compiler version.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/10041

Reviewed By: ltamasi

Differential Revision: D36617212

Pulled By: anand1976

fbshipit-source-id: dfb25320788d32969317d5651173059e2cbd8bd5
main
anand76 3 years ago committed by Facebook GitHub Bot
parent 253ae017fa
commit 8e9d9156b0
  1. 7
      util/async_file_reader.h

@ -54,7 +54,8 @@ class AsyncFileReader {
file_(file), file_(file),
opts_(opts), opts_(opts),
read_reqs_(read_reqs), read_reqs_(read_reqs),
num_reqs_(num_reqs) {} num_reqs_(num_reqs),
next_(nullptr) {}
bool await_ready() noexcept { return false; } bool await_ready() noexcept { return false; }
@ -62,7 +63,7 @@ class AsyncFileReader {
// awaiting_coro parameter is the handle of the awaiter. The handle can be // awaiting_coro parameter is the handle of the awaiter. The handle can be
// resumed later, so we cache it here. // resumed later, so we cache it here.
bool await_suspend( bool await_suspend(
std::experimental::coroutine_handle<> awaiting_coro) noexcept { folly::coro::impl::coroutine_handle<> awaiting_coro) noexcept {
awaiting_coro_ = awaiting_coro; awaiting_coro_ = awaiting_coro;
// MultiReadAsyncImpl always returns true, so caller will be suspended // MultiReadAsyncImpl always returns true, so caller will be suspended
return reader_.MultiReadAsyncImpl(this); return reader_.MultiReadAsyncImpl(this);
@ -83,7 +84,7 @@ class AsyncFileReader {
size_t num_reqs_; size_t num_reqs_;
autovector<void*, 32> io_handle_; autovector<void*, 32> io_handle_;
autovector<IOHandleDeleter, 32> del_fn_; autovector<IOHandleDeleter, 32> del_fn_;
std::experimental::coroutine_handle<> awaiting_coro_; folly::coro::impl::coroutine_handle<> awaiting_coro_;
// Use this to link to the next ReadAwaiter in the suspended coroutine // Use this to link to the next ReadAwaiter in the suspended coroutine
// list. The head and tail of the list are tracked by AsyncFileReader. // list. The head and tail of the list are tracked by AsyncFileReader.
// We use this approach rather than an STL container in order to avoid // We use this approach rather than an STL container in order to avoid

Loading…
Cancel
Save