Commit ad932c32 authored by James Sedgwick's avatar James Sedgwick Committed by Alecs King

revert D1985475, clang still borked

Summary:
This reverts commit bb08e2405dc68e6dab1f0066b15faa2821ad3dc7.

Test Plan: revert-hammer

Reviewed By: hans@fb.com

Subscribers: mathieubaudet, folly-diffs@, jsedgwick, yfeldblum, chalfant

FB internal diff: D2006283

Signature: t1:2006283:1429556243:41e6b3189ce2da5a0f1a32a663ff8761628ca574
parent a38fa2aa
......@@ -235,16 +235,6 @@ Future<T>::then(R(Caller::*func)(Args...), Caller *instance) {
});
}
template <class T>
template <class... Args>
auto Future<T>::then(Executor* x, Args&&... args)
-> decltype(this->then(std::forward<Args>(args)...))
{
auto oldX = getExecutor();
setExecutor(x);
return this->then(std::forward<Args>(args)...).via(oldX);
}
template <class T>
Future<void> Future<T>::then() {
return then([] (Try<T>&& t) {});
......
......@@ -325,22 +325,6 @@ class Future {
Future<typename isFuture<R>::Inner>
then(R(Caller::*func)(Args...), Caller *instance);
/// Execute the callback via the given Executor. The executor doesn't stick.
///
/// Contrast
///
/// f.via(x).then(b).then(c)
///
/// with
///
/// f.then(x, b).then(c)
///
/// In the former both b and c execute via x. In the latter, only b executes
/// via x, and c executes via the same executor (if any) that f had.
template <class... Args>
auto then(Executor* x, Args&&... args)
-> decltype(this->then(std::forward<Args>(args)...));
/// Convenience method for ignoring the value and creating a Future<void>.
/// Exceptions still propagate.
Future<void> then();
......
......@@ -184,33 +184,3 @@ TEST(Via, chain3) {
EXPECT_EQ(42, f.get());
EXPECT_EQ(3, count);
}
TEST(Via, then2) {
ManualExecutor x1, x2;
bool a,b,c;
via(&x1)
.then([&]{ a = true; })
.then(&x2, [&]{ b = true; })
.then([&]{ c = true; });
EXPECT_FALSE(a);
EXPECT_FALSE(b);
x1.run();
EXPECT_TRUE(a);
EXPECT_FALSE(b);
EXPECT_FALSE(c);
x2.run();
EXPECT_TRUE(b);
EXPECT_FALSE(c);
x1.run();
EXPECT_TRUE(c);
}
TEST(Via, then2Variadic) {
struct Foo { void foo(Try<void>) {} };
Foo f;
makeFuture().then(nullptr, &Foo::foo, &f);
}
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