/*
- * Copyright 2015 Facebook, Inc.
+ * Copyright 2016 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
#include <folly/AtomicUnorderedMap.h>
-#include <folly/test/DeterministicSchedule.h>
-#include <thread>
+
#include <semaphore.h>
-#include <gflags/gflags.h>
-#include <gtest/gtest.h>
-#include <folly/Benchmark.h>
+#include <thread>
#include <unordered_map>
+#include <folly/Benchmark.h>
+#include <folly/portability/GFlags.h>
+#include <folly/portability/GTest.h>
+#include <folly/test/DeterministicSchedule.h>
+
using namespace folly;
using namespace folly::test;
T operator+=(T arg) { value += arg; return load();}
- T load(std::memory_order order= std::memory_order_seq_cst) const {
+ T load(std::memory_order /* order */ = std::memory_order_seq_cst) const {
return value;
}
/* implicit */
operator T() const {return load();}
- void store(T desired, std::memory_order order = std::memory_order_seq_cst) {
+ void store(T desired,
+ std::memory_order /* order */ = std::memory_order_seq_cst) {
value = desired;
}
- T exchange(T desired, std::memory_order order = std::memory_order_seq_cst) {
+ T exchange(T desired,
+ std::memory_order /* order */ = std::memory_order_seq_cst) {
T old = load();
store(desired);
return old;
}
bool compare_exchange_weak(
- T& expected, T desired,
- std::memory_order success = std::memory_order_seq_cst,
- std::memory_order failure = std::memory_order_seq_cst) {
+ T& expected,
+ T desired,
+ std::memory_order /* success */ = std::memory_order_seq_cst,
+ std::memory_order /* failure */ = std::memory_order_seq_cst) {
if (value == expected) {
value = desired;
return true;
}
bool compare_exchange_strong(
- T& expected, T desired,
- std::memory_order success = std::memory_order_seq_cst,
- std::memory_order failure = std::memory_order_seq_cst) {
+ T& expected,
+ T desired,
+ std::memory_order /* success */ = std::memory_order_seq_cst,
+ std::memory_order /* failure */ = std::memory_order_seq_cst) {
if (value == expected) {
value = desired;
return true;
(boost::has_trivial_destructor<Key>::value &&
boost::has_trivial_destructor<Value>::value),
Atom,
- Allocator,
- IndexType>;
+ IndexType,
+ Allocator>;
namespace {
template <typename T>
int main(int argc, char ** argv) {
testing::InitGoogleTest(&argc, argv);
- google::ParseCommandLineFlags(&argc, &argv, true);
+ gflags::ParseCommandLineFlags(&argc, &argv, true);
int rv = RUN_ALL_TESTS();
folly::runBenchmarksOnFlag();
return rv;