Chromium Code Reviews| Index: base/barrier_closure_unittest.cc |
| diff --git a/base/barrier_closure_unittest.cc b/base/barrier_closure_unittest.cc |
| index ab05cb8af540f82f53420a7df47b99fdc0685d39..caa000ff03811048482ba220af4216b1c6142a19 100644 |
| --- a/base/barrier_closure_unittest.cc |
| +++ b/base/barrier_closure_unittest.cc |
| @@ -13,24 +13,37 @@ void Increment(int* count) { (*count)++; } |
| TEST(BarrierClosureTest, RunImmediatelyForZeroClosures) { |
| int count = 0; |
| - base::Closure doneClosure(base::Bind(&Increment, base::Unretained(&count))); |
| + base::Closure done_closure(base::Bind(&Increment, base::Unretained(&count))); |
| - base::Closure barrierClosure = base::BarrierClosure(0, doneClosure); |
| + base::Closure barrier_closure = base::BarrierClosure(0, done_closure); |
| EXPECT_EQ(1, count); |
| } |
| TEST(BarrierClosureTest, RunAfterNumClosures) { |
| int count = 0; |
| - base::Closure doneClosure(base::Bind(&Increment, base::Unretained(&count))); |
| + base::Closure done_closure(base::Bind(&Increment, base::Unretained(&count))); |
| - base::Closure barrierClosure = base::BarrierClosure(2, doneClosure); |
| + base::Closure barier_closure = base::BarrierClosure(2, done_closure); |
|
danakj
2015/04/30 17:32:55
barrier
dzhioev (left Google)
2015/04/30 20:00:54
Done.
|
| EXPECT_EQ(0, count); |
| - barrierClosure.Run(); |
| + barier_closure.Run(); |
| EXPECT_EQ(0, count); |
| - barrierClosure.Run(); |
| + barier_closure.Run(); |
| EXPECT_EQ(1, count); |
| } |
| +void ReleaseClosure(base::Closure* closure) { |
| + *closure = base::Closure(); |
| +} |
| + |
| +// Tests a case when client releases a reference to BarierClosure in |
| +// |done_closure|. |
| +TEST(BarrierClosureTest, KeepingClosureAliveUntilDone) { |
| + base::Closure barier_closure; |
| + base::Closure done_closure = base::Bind(ReleaseClosure, &barier_closure); |
| + barier_closure = base::BarrierClosure(1, done_closure); |
|
danakj
2015/04/30 17:32:55
BarrierClosure makes a copy of done_closure in the
dzhioev (left Google)
2015/04/30 20:00:54
I change |barrier_closure|, not |done_closure|.
De
|
| + barier_closure.Run(); |
| +} |
| + |
| } // namespace |