Commit ac16a6fc authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook Github Bot

No need for qualifying InlineExecutor in Futures

Summary: [Folly] No need for qualifying `InlineExecutor` in `Futures` - they are both in `namespace folly` already.

Reviewed By: marshallcline

Differential Revision: D8307058

fbshipit-source-id: 17a0ecde1e57f1c0c88cbac09bbd1bb3daf7a24e
parent 2b4f07ee
...@@ -365,7 +365,7 @@ Future<T> chainExecutor(Executor*, Future<T>&& f) { ...@@ -365,7 +365,7 @@ Future<T> chainExecutor(Executor*, Future<T>&& f) {
template <class T> template <class T>
Future<T> chainExecutor(Executor* e, SemiFuture<T>&& f) { Future<T> chainExecutor(Executor* e, SemiFuture<T>&& f) {
if (!e) { if (!e) {
e = &folly::InlineExecutor::instance(); e = &InlineExecutor::instance();
} }
return std::move(f).via(e); return std::move(f).via(e);
} }
...@@ -812,7 +812,7 @@ Future<T> SemiFuture<T>::via(Executor* executor, int8_t priority) && { ...@@ -812,7 +812,7 @@ Future<T> SemiFuture<T>::via(Executor* executor, int8_t priority) && {
template <class T> template <class T>
Future<T> SemiFuture<T>::toUnsafeFuture() && { Future<T> SemiFuture<T>::toUnsafeFuture() && {
return std::move(*this).via(&folly::InlineExecutor::instance()); return std::move(*this).via(&InlineExecutor::instance());
} }
template <class T> template <class T>
...@@ -1017,7 +1017,7 @@ Future<T> Future<T>::thenError(F&& func) && { ...@@ -1017,7 +1017,7 @@ Future<T> Future<T>::thenError(F&& func) && {
return onError([func = std::forward<F>(func)](ExceptionType& ex) mutable { return onError([func = std::forward<F>(func)](ExceptionType& ex) mutable {
return std::forward<F>(func)(ex); return std::forward<F>(func)(ex);
}) })
.via(e ? e : &folly::InlineExecutor::instance()); .via(e ? e : &InlineExecutor::instance());
} }
template <class T> template <class T>
...@@ -1031,7 +1031,7 @@ Future<T> Future<T>::thenError(F&& func) && { ...@@ -1031,7 +1031,7 @@ Future<T> Future<T>::thenError(F&& func) && {
folly::exception_wrapper&& ex) mutable { folly::exception_wrapper&& ex) mutable {
return std::forward<F>(func)(std::move(ex)); return std::forward<F>(func)(std::move(ex));
}) })
.via(e ? e : &folly::InlineExecutor::instance()); .via(e ? e : &InlineExecutor::instance());
} }
template <class T> template <class T>
...@@ -1071,7 +1071,7 @@ Future<T>::onError(F&& func) { ...@@ -1071,7 +1071,7 @@ Future<T>::onError(F&& func) {
// Allow for applying to future with null executor while this is still // Allow for applying to future with null executor while this is still
// possible. // possible.
// TODO(T26801487): Should have an executor // TODO(T26801487): Should have an executor
return std::move(sf).via(&folly::InlineExecutor::instance()); return std::move(sf).via(&InlineExecutor::instance());
} }
// onError where the callback returns Future<T> // onError where the callback returns Future<T>
...@@ -1113,7 +1113,7 @@ Future<T>::onError(F&& func) { ...@@ -1113,7 +1113,7 @@ Future<T>::onError(F&& func) {
// Allow for applying to future with null executor while this is still // Allow for applying to future with null executor while this is still
// possible. // possible.
// TODO(T26801487): Should have an executor // TODO(T26801487): Should have an executor
return std::move(sf).via(&folly::InlineExecutor::instance()); return std::move(sf).via(&InlineExecutor::instance());
} }
template <class T> template <class T>
...@@ -1168,7 +1168,7 @@ Future<T>::onError(F&& func) { ...@@ -1168,7 +1168,7 @@ Future<T>::onError(F&& func) {
// Allow for applying to future with null executor while this is still // Allow for applying to future with null executor while this is still
// possible. // possible.
// TODO(T26801487): Should have an executor // TODO(T26801487): Should have an executor
return std::move(sf).via(&folly::InlineExecutor::instance()); return std::move(sf).via(&InlineExecutor::instance());
} }
// onError(exception_wrapper) that returns T // onError(exception_wrapper) that returns T
...@@ -1200,7 +1200,7 @@ Future<T>::onError(F&& func) { ...@@ -1200,7 +1200,7 @@ Future<T>::onError(F&& func) {
// Allow for applying to future with null executor while this is still // Allow for applying to future with null executor while this is still
// possible. // possible.
// TODO(T26801487): Should have an executor // TODO(T26801487): Should have an executor
return std::move(sf).via(&folly::InlineExecutor::instance()); return std::move(sf).via(&InlineExecutor::instance());
} }
template <class Func> template <class Func>
...@@ -1404,7 +1404,7 @@ collect(InputIterator first, InputIterator last) { ...@@ -1404,7 +1404,7 @@ collect(InputIterator first, InputIterator last) {
ctx->setPartialResult(i, t); ctx->setPartialResult(i, t);
} }
}); });
return ctx->p.getSemiFuture().via(&folly::InlineExecutor::instance()); return ctx->p.getSemiFuture().via(&InlineExecutor::instance());
} }
// collect (variadic) // collect (variadic)
...@@ -1418,7 +1418,7 @@ collect(Fs&&... fs) { ...@@ -1418,7 +1418,7 @@ collect(Fs&&... fs) {
typename std::decay<Fs>::type::value_type...>>(); typename std::decay<Fs>::type::value_type...>>();
futures::detail::collectVariadicHelper< futures::detail::collectVariadicHelper<
futures::detail::CollectVariadicContext>(ctx, std::forward<Fs>(fs)...); futures::detail::CollectVariadicContext>(ctx, std::forward<Fs>(fs)...);
return ctx->p.getSemiFuture().via(&folly::InlineExecutor::instance()); return ctx->p.getSemiFuture().via(&InlineExecutor::instance());
} }
// collectAny (iterator) // collectAny (iterator)
...@@ -1446,7 +1446,7 @@ collectAny(InputIterator first, InputIterator last) { ...@@ -1446,7 +1446,7 @@ collectAny(InputIterator first, InputIterator last) {
ctx->p.setValue(std::make_pair(i, std::move(t))); ctx->p.setValue(std::make_pair(i, std::move(t)));
} }
}); });
return ctx->p.getSemiFuture().via(&folly::InlineExecutor::instance()); return ctx->p.getSemiFuture().via(&InlineExecutor::instance());
} }
// collectAnyWithoutException (iterator) // collectAnyWithoutException (iterator)
...@@ -1478,7 +1478,7 @@ collectAnyWithoutException(InputIterator first, InputIterator last) { ...@@ -1478,7 +1478,7 @@ collectAnyWithoutException(InputIterator first, InputIterator last) {
ctx->p.setException(t.exception()); ctx->p.setException(t.exception());
} }
}); });
return ctx->p.getSemiFuture().via(&folly::InlineExecutor::instance()); return ctx->p.getSemiFuture().via(&InlineExecutor::instance());
} }
// collectN (iterator) // collectN (iterator)
...@@ -1719,7 +1719,7 @@ Future<T> unorderedReduce(It first, It last, T initial, F func) { ...@@ -1719,7 +1719,7 @@ Future<T> unorderedReduce(It first, It last, T initial, F func) {
} }
}); });
return ctx->promise_.getSemiFuture().via(&folly::InlineExecutor::instance()); return ctx->promise_.getSemiFuture().via(&InlineExecutor::instance());
} }
// within // within
...@@ -1740,7 +1740,7 @@ Future<T> Future<T>::within(Duration dur, E e, Timekeeper* tk) { ...@@ -1740,7 +1740,7 @@ Future<T> Future<T>::within(Duration dur, E e, Timekeeper* tk) {
return this->withinImplementation(dur, e, tk) return this->withinImplementation(dur, e, tk)
.via( .via(
currentExecutor ? currentExecutor currentExecutor ? currentExecutor
: &folly::InlineExecutor::instance()); : &InlineExecutor::instance());
} }
// delayed // delayed
...@@ -1749,7 +1749,7 @@ template <class T> ...@@ -1749,7 +1749,7 @@ template <class T>
Future<T> Future<T>::delayed(Duration dur, Timekeeper* tk) && { Future<T> Future<T>::delayed(Duration dur, Timekeeper* tk) && {
auto e = this->getExecutor(); auto e = this->getExecutor();
return collectAllSemiFuture(*this, futures::sleep(dur, tk)) return collectAllSemiFuture(*this, futures::sleep(dur, tk))
.via(e ? e : &folly::InlineExecutor::instance()) .via(e ? e : &InlineExecutor::instance())
.then([](std::tuple<Try<T>, Try<Unit>>&& tup) { .then([](std::tuple<Try<T>, Try<Unit>>&& tup) {
return makeFuture<T>(std::get<0>(std::move(tup))); return makeFuture<T>(std::get<0>(std::move(tup)));
}); });
...@@ -1789,7 +1789,7 @@ void convertFuture(SemiFuture<T>&& sf, Future<T>& f) { ...@@ -1789,7 +1789,7 @@ void convertFuture(SemiFuture<T>&& sf, Future<T>& f) {
// Carry executor from f, inserting an inline executor if it did not have one // Carry executor from f, inserting an inline executor if it did not have one
auto* currentExecutor = f.getExecutor(); auto* currentExecutor = f.getExecutor();
f = std::move(sf).via( f = std::move(sf).via(
currentExecutor ? currentExecutor : &folly::InlineExecutor::instance()); currentExecutor ? currentExecutor : &InlineExecutor::instance());
} }
template <class T> template <class T>
......
...@@ -84,7 +84,7 @@ class FutureSplitter { ...@@ -84,7 +84,7 @@ class FutureSplitter {
// If the passed future had a null executor, use an inline executor // If the passed future had a null executor, use an inline executor
// to ensure that .via is safe // to ensure that .via is safe
auto* e = f.getExecutor(); auto* e = f.getExecutor();
return e ? e : &folly::InlineExecutor::instance(); return e ? e : &InlineExecutor::instance();
} }
}; };
......
...@@ -70,7 +70,7 @@ SemiFuture<T> SharedPromise<T>::getSemiFuture() { ...@@ -70,7 +70,7 @@ SemiFuture<T> SharedPromise<T>::getSemiFuture() {
template <class T> template <class T>
Future<T> SharedPromise<T>::getFuture() { Future<T> SharedPromise<T>::getFuture() {
return getSemiFuture().via(&folly::InlineExecutor::instance()); return getSemiFuture().via(&InlineExecutor::instance());
} }
template <class T> template <class T>
......
...@@ -576,7 +576,7 @@ TEST(Collect, collectN) { ...@@ -576,7 +576,7 @@ TEST(Collect, collectN) {
bool flag = false; bool flag = false;
size_t n = 3; size_t n = 3;
collectN(futures, n) collectN(futures, n)
.via(&folly::InlineExecutor::instance()) .via(&InlineExecutor::instance())
.then([&](std::vector<std::pair<size_t, Try<Unit>>> v) { .then([&](std::vector<std::pair<size_t, Try<Unit>>> v) {
flag = true; flag = true;
EXPECT_EQ(n, v.size()); EXPECT_EQ(n, v.size());
...@@ -604,7 +604,7 @@ TEST(Collect, collectNParallel) { ...@@ -604,7 +604,7 @@ TEST(Collect, collectNParallel) {
bool flag = false; bool flag = false;
size_t n = 90; size_t n = 90;
collectN(futures, n) collectN(futures, n)
.via(&folly::InlineExecutor::instance()) .via(&InlineExecutor::instance())
.then([&](std::vector<std::pair<size_t, Try<Unit>>> v) { .then([&](std::vector<std::pair<size_t, Try<Unit>>> v) {
flag = true; flag = true;
EXPECT_EQ(n, v.size()); EXPECT_EQ(n, v.size());
......
...@@ -22,7 +22,7 @@ using namespace folly; ...@@ -22,7 +22,7 @@ using namespace folly;
TEST(FutureSplitter, splitFutureSuccess) { TEST(FutureSplitter, splitFutureSuccess) {
Promise<int> p; Promise<int> p;
folly::FutureSplitter<int> sp( folly::FutureSplitter<int> sp(
p.getSemiFuture().via(&folly::InlineExecutor::instance())); p.getSemiFuture().via(&InlineExecutor::instance()));
auto f1 = sp.getFuture(); auto f1 = sp.getFuture();
EXPECT_FALSE(f1.isReady()); EXPECT_FALSE(f1.isReady());
p.setValue(1); p.setValue(1);
...@@ -36,7 +36,7 @@ TEST(FutureSplitter, splitFutureSuccess) { ...@@ -36,7 +36,7 @@ TEST(FutureSplitter, splitFutureSuccess) {
TEST(FutureSplitter, splitFutureSuccessSemiFuture) { TEST(FutureSplitter, splitFutureSuccessSemiFuture) {
Promise<int> p; Promise<int> p;
folly::FutureSplitter<int> sp( folly::FutureSplitter<int> sp(
p.getSemiFuture().via(&folly::InlineExecutor::instance())); p.getSemiFuture().via(&InlineExecutor::instance()));
auto f1 = sp.getSemiFuture(); auto f1 = sp.getSemiFuture();
EXPECT_FALSE(f1.isReady()); EXPECT_FALSE(f1.isReady());
p.setValue(1); p.setValue(1);
...@@ -53,7 +53,7 @@ TEST(FutureSplitter, splitFutureSuccessNullExecutor) { ...@@ -53,7 +53,7 @@ TEST(FutureSplitter, splitFutureSuccessNullExecutor) {
// Double via because a null executor to SemiFuture.via is invalid but we // Double via because a null executor to SemiFuture.via is invalid but we
// are testing a situation where we have a FutureSplitter from a future with // are testing a situation where we have a FutureSplitter from a future with
// a null executor to account for legacy code. // a null executor to account for legacy code.
auto f = std::move(sf).via(&folly::InlineExecutor::instance()).via(nullptr); auto f = std::move(sf).via(&InlineExecutor::instance()).via(nullptr);
folly::FutureSplitter<int> sp(std::move(f)); folly::FutureSplitter<int> sp(std::move(f));
auto f1 = sp.getFuture(); auto f1 = sp.getFuture();
EXPECT_FALSE(f1.isReady()); EXPECT_FALSE(f1.isReady());
...@@ -68,7 +68,7 @@ TEST(FutureSplitter, splitFutureSuccessNullExecutor) { ...@@ -68,7 +68,7 @@ TEST(FutureSplitter, splitFutureSuccessNullExecutor) {
TEST(FutureSplitter, splitFutureCopyable) { TEST(FutureSplitter, splitFutureCopyable) {
Promise<int> p; Promise<int> p;
folly::FutureSplitter<int> sp1( folly::FutureSplitter<int> sp1(
p.getSemiFuture().via(&folly::InlineExecutor::instance())); p.getSemiFuture().via(&InlineExecutor::instance()));
folly::FutureSplitter<int> sp2(sp1); folly::FutureSplitter<int> sp2(sp1);
auto f1 = sp1.getFuture(); auto f1 = sp1.getFuture();
EXPECT_FALSE(f1.isReady()); EXPECT_FALSE(f1.isReady());
...@@ -87,7 +87,7 @@ TEST(FutureSplitter, splitFutureCopyable) { ...@@ -87,7 +87,7 @@ TEST(FutureSplitter, splitFutureCopyable) {
TEST(FutureSplitter, splitFutureMovable) { TEST(FutureSplitter, splitFutureMovable) {
Promise<int> p; Promise<int> p;
folly::FutureSplitter<int> sp1( folly::FutureSplitter<int> sp1(
p.getSemiFuture().via(&folly::InlineExecutor::instance())); p.getSemiFuture().via(&InlineExecutor::instance()));
auto f1 = sp1.getFuture(); auto f1 = sp1.getFuture();
folly::FutureSplitter<int> sp2(std::move(sp1)); folly::FutureSplitter<int> sp2(std::move(sp1));
EXPECT_FALSE(f1.isReady()); EXPECT_FALSE(f1.isReady());
...@@ -106,7 +106,7 @@ TEST(FutureSplitter, splitFutureMovable) { ...@@ -106,7 +106,7 @@ TEST(FutureSplitter, splitFutureMovable) {
TEST(FutureSplitter, splitFutureCopyAssignable) { TEST(FutureSplitter, splitFutureCopyAssignable) {
Promise<int> p; Promise<int> p;
folly::FutureSplitter<int> sp1( folly::FutureSplitter<int> sp1(
p.getSemiFuture().via(&folly::InlineExecutor::instance())); p.getSemiFuture().via(&InlineExecutor::instance()));
folly::FutureSplitter<int> sp2{}; folly::FutureSplitter<int> sp2{};
sp2 = sp1; sp2 = sp1;
auto f1 = sp1.getFuture(); auto f1 = sp1.getFuture();
...@@ -126,7 +126,7 @@ TEST(FutureSplitter, splitFutureCopyAssignable) { ...@@ -126,7 +126,7 @@ TEST(FutureSplitter, splitFutureCopyAssignable) {
TEST(FutureSplitter, splitFutureMoveAssignable) { TEST(FutureSplitter, splitFutureMoveAssignable) {
Promise<int> p; Promise<int> p;
folly::FutureSplitter<int> sp1( folly::FutureSplitter<int> sp1(
p.getSemiFuture().via(&folly::InlineExecutor::instance())); p.getSemiFuture().via(&InlineExecutor::instance()));
auto f1 = sp1.getFuture(); auto f1 = sp1.getFuture();
folly::FutureSplitter<int> sp2{}; folly::FutureSplitter<int> sp2{};
sp2 = std::move(sp1); sp2 = std::move(sp1);
...@@ -146,7 +146,7 @@ TEST(FutureSplitter, splitFutureMoveAssignable) { ...@@ -146,7 +146,7 @@ TEST(FutureSplitter, splitFutureMoveAssignable) {
TEST(FutureSplitter, splitFutureScope) { TEST(FutureSplitter, splitFutureScope) {
Promise<int> p; Promise<int> p;
auto pSP = std::make_unique<folly::FutureSplitter<int>>( auto pSP = std::make_unique<folly::FutureSplitter<int>>(
p.getSemiFuture().via(&folly::InlineExecutor::instance())); p.getSemiFuture().via(&InlineExecutor::instance()));
auto f1 = pSP->getFuture(); auto f1 = pSP->getFuture();
EXPECT_FALSE(f1.isReady()); EXPECT_FALSE(f1.isReady());
pSP.reset(); pSP.reset();
...@@ -160,7 +160,7 @@ TEST(FutureSplitter, splitFutureScope) { ...@@ -160,7 +160,7 @@ TEST(FutureSplitter, splitFutureScope) {
TEST(FutureSplitter, splitFutureFailure) { TEST(FutureSplitter, splitFutureFailure) {
Promise<int> p; Promise<int> p;
folly::FutureSplitter<int> sp( folly::FutureSplitter<int> sp(
p.getSemiFuture().via(&folly::InlineExecutor::instance())); p.getSemiFuture().via(&InlineExecutor::instance()));
auto f1 = sp.getFuture(); auto f1 = sp.getFuture();
EXPECT_FALSE(f1.isReady()); EXPECT_FALSE(f1.isReady());
try { try {
......
...@@ -62,7 +62,7 @@ TEST(SelfDestruct, throwingExecutor) { ...@@ -62,7 +62,7 @@ TEST(SelfDestruct, throwingExecutor) {
} }
TEST(SelfDestruct, throwingInlineExecutor) { TEST(SelfDestruct, throwingInlineExecutor) {
folly::InlineExecutor executor; InlineExecutor executor;
auto* p = new Promise<int>(); auto* p = new Promise<int>();
auto future = p->getFuture() auto future = p->getFuture()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment