BenchmarkSuspender::dismissing.
authorYedidya Feldblum <yfeldblum@fb.com>
Mon, 27 Apr 2015 19:49:35 +0000 (12:49 -0700)
committerAndrii Grynenko <andrii@fb.com>
Wed, 29 Apr 2015 22:56:51 +0000 (15:56 -0700)
commitf8147e89c8fc8c1096ccac2587adde4211317730
treeb61fa981a20babec2c38316ea4c0195f05840ccc
parentdda97e8e969c34c4a10de1e26199fa926c0ae731
BenchmarkSuspender::dismissing.

Summary:
[Folly] BenchmarkSuspender::dismissing.

Pass a lambda to it, and the lambda will be executed while the benchmark-suspender is dismissed. Just a bit of sugar around `BenchmarkSuspender::dismiss` and `BenchmarkSuspender::rehire`.

BENCHMARK(name_void, iters) {
BenchmarkSuspender braces;
# benchmark timer is suspended
braces.dismissing([&] {
# benchmark timer is running
doSomething();
});
# benchmark timer is suspended
}

BENCHMARK(name_value, iters) {
BenchmarkSuspender braces;
# benchmark timer is suspended
auto value = braces.dismissing([&] {
# benchmark timer is running
return doSomething();
});
# benchmark timer is suspended
}

Test Plan:
Unit tests:
* `folly/test/BenchmarkTest.cpp` (actually a benchmark)

Reviewed By: njormrod@fb.com

Subscribers: net-systems@, folly-diffs@, yfeldblum, chalfant

FB internal diff: D2024166

Signature: t1:2024166:1430163281:24df0ac98cbe36372f780372ee8f7dd3722b7868
folly/Benchmark.h
folly/test/BenchmarkTest.cpp