/*
- * Copyright 2014 Facebook, Inc.
+ * Copyright 2015 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
BENCHMARK(exception_ptr_create_and_test, iters) {
std::runtime_error e("payload");
- for (int i = 0; i < iters; ++i) {
+ for (size_t i = 0; i < iters; ++i) {
auto ep = std::make_exception_ptr(e);
assert(ep);
}
BENCHMARK_RELATIVE(exception_wrapper_create_and_test, iters) {
std::runtime_error e("payload");
- for (int i = 0; i < iters; ++i) {
+ for (size_t i = 0; i < iters; ++i) {
auto ew = folly::make_exception_wrapper<std::runtime_error>(e);
- assert(ew.get());
+ assert(ew);
}
}
threads.emplace_back([&go, iters] {
while (!go) { }
std::runtime_error e("payload");
- for (int i = 0; i < iters; ++i) {
+ for (size_t i = 0; i < iters; ++i) {
auto ep = std::make_exception_ptr(e);
assert(ep);
}
threads.emplace_back([&go, iters] {
while (!go) { }
std::runtime_error e("payload");
- for (int i = 0; i < iters; ++i) {
+ for (size_t i = 0; i < iters; ++i) {
auto ew = folly::make_exception_wrapper<std::runtime_error>(e);
- assert(ew.get());
+ assert(ew);
}
});
}
*/
BENCHMARK(exception_ptr_create_and_throw, iters) {
std::runtime_error e("payload");
- for (int i = 0; i < iters; ++i) {
+ for (size_t i = 0; i < iters; ++i) {
auto ep = std::make_exception_ptr(e);
try {
std::rethrow_exception(ep);
BENCHMARK_RELATIVE(exception_wrapper_create_and_throw, iters) {
std::runtime_error e("payload");
- for (int i = 0; i < iters; ++i) {
+ for (size_t i = 0; i < iters; ++i) {
auto ew = folly::make_exception_wrapper<std::runtime_error>(e);
try {
ew.throwException();
BENCHMARK_RELATIVE(exception_wrapper_create_and_cast, iters) {
std::runtime_error e("payload");
- for (int i = 0; i < iters; ++i) {
+ for (size_t i = 0; i < iters; ++i) {
auto ew = folly::make_exception_wrapper<std::runtime_error>(e);
- std::exception* basePtr = static_cast<std::exception*>(ew.get());
- auto ep = dynamic_cast<std::runtime_error*>(basePtr);
- assert(ep);
+ assert(ew.is_compatible_with<std::runtime_error>());
}
}
threads.emplace_back([&go, iters] {
while (!go) { }
std::runtime_error e("payload");
- for (int i = 0; i < iters; ++i) {
+ for (size_t i = 0; i < iters; ++i) {
auto ep = std::make_exception_ptr(e);
try {
std::rethrow_exception(ep);
threads.emplace_back([&go, iters] {
while (!go) { }
std::runtime_error e("payload");
- for (int i = 0; i < iters; ++i) {
+ for (size_t i = 0; i < iters; ++i) {
auto ew = folly::make_exception_wrapper<std::runtime_error>(e);
try {
ew.throwException();
threads.emplace_back([&go, iters] {
while (!go) { }
std::runtime_error e("payload");
- for (int i = 0; i < iters; ++i) {
+ for (size_t i = 0; i < iters; ++i) {
auto ew = folly::make_exception_wrapper<std::runtime_error>(e);
- std::exception* basePtr = static_cast<std::exception*>(ew.get());
- auto ep = dynamic_cast<std::runtime_error*>(basePtr);
- assert(ep);
+ assert(ew.is_compatible_with<std::runtime_error>());
}
});
}