Commit 27ff9a4a authored by Peter Griess's avatar Peter Griess

Fix misc compilation errors in ThreadCachedIntTest.

Summary:
- int64_t is a long on x86_64, but a long long on 32-bit.
- Build a uint64_t from pthread_self() before performing masking on it.

Test Plan:
- fbconfig -r folly && fbmake runtests
- ./configure && make check on Ubuntu/FC/Mac

Reviewed By: andrei.alexandrescu@fb.com

FB internal diff: D998598
parent 209fa4a8
......@@ -162,7 +162,8 @@ struct ShardedAtomicInt {
std::atomic<int64_t> ints_[kBuckets_];
inline void inc(int64_t val = 1) {
int bucket = hash::twang_mix64(pthread_self()) & (kBuckets_ - 1);
int bucket = hash::twang_mix64(
uint64_t(pthread_self())) & (kBuckets_ - 1);
std::atomic_fetch_add(&ints_[bucket], val);
}
......@@ -193,8 +194,10 @@ REG_BASELINE(_thread64, global__thread64 += 1);
REG_BASELINE(_thread32, global__thread32 += 1);
REG_BASELINE(ThreadLocal64, *globalTL64Baseline += 1);
REG_BASELINE(ThreadLocal32, *globalTL32Baseline += 1);
REG_BASELINE(atomic_inc64, std::atomic_fetch_add(&globalInt64Baseline, 1L));
REG_BASELINE(atomic_inc32, std::atomic_fetch_add(&globalInt32Baseline, 1));
REG_BASELINE(atomic_inc64,
std::atomic_fetch_add(&globalInt64Baseline, int64_t(1)));
REG_BASELINE(atomic_inc32,
std::atomic_fetch_add(&globalInt32Baseline, int32_t(1)));
REG_BASELINE(ShardedAtm64, shd_int64.inc());
BENCHMARK_PARAM(BM_mt_cache_size64, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment