From: James Sedgwick Date: Mon, 20 Apr 2015 19:20:01 +0000 (-0700) Subject: revert D1985475, clang still borked X-Git-Tag: v0.36.0~21 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ad932c32057925606acb5156dd58e2626a8cccc3;p=folly.git 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 --- diff --git a/folly/futures/Future-inl.h b/folly/futures/Future-inl.h index 94930b7b..7a2ffc2b 100644 --- a/folly/futures/Future-inl.h +++ b/folly/futures/Future-inl.h @@ -235,16 +235,6 @@ Future::then(R(Caller::*func)(Args...), Caller *instance) { }); } -template -template -auto Future::then(Executor* x, Args&&... args) - -> decltype(this->then(std::forward(args)...)) -{ - auto oldX = getExecutor(); - setExecutor(x); - return this->then(std::forward(args)...).via(oldX); -} - template Future Future::then() { return then([] (Try&& t) {}); diff --git a/folly/futures/Future.h b/folly/futures/Future.h index 455c264e..90207dd8 100644 --- a/folly/futures/Future.h +++ b/folly/futures/Future.h @@ -325,22 +325,6 @@ class Future { Future::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 - auto then(Executor* x, Args&&... args) - -> decltype(this->then(std::forward(args)...)); - /// Convenience method for ignoring the value and creating a Future. /// Exceptions still propagate. Future then(); diff --git a/folly/futures/test/ViaTest.cpp b/folly/futures/test/ViaTest.cpp index d17fe575..390787d1 100644 --- a/folly/futures/test/ViaTest.cpp +++ b/folly/futures/test/ViaTest.cpp @@ -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) {} }; - Foo f; - makeFuture().then(nullptr, &Foo::foo, &f); -}