/*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
MSLGuard g(v.lock);
int first = v.ar[0];
- for (size_t i = 1; i < sizeof v.ar / sizeof i; ++i) {
- EXPECT_EQ(first, v.ar[i]);
+ for (size_t j = 1; j < sizeof v.ar / sizeof j; ++j) {
+ EXPECT_EQ(first, v.ar[j]);
}
int byte = folly::Random::rand32(rng);
PslTest() { lock.init(); }
void doTest() {
- T ourVal = rand() % (T(1) << (sizeof(T) * 8 - 1));
- for (int i = 0; i < 10000; ++i) {
+ using UT = typename std::make_unsigned<T>::type;
+ T ourVal = rand() % T(UT(1) << (sizeof(UT) * 8 - 1));
+ for (int i = 0; i < 100; ++i) {
std::lock_guard<PicoSpinLock<T>> guard(lock);
lock.setData(ourVal);
for (int n = 0; n < 10; ++n) {
// affect bits outside the ones MicroLock is defined to affect.
struct {
uint8_t a;
- volatile uint8_t b;
+ std::atomic<uint8_t> b;
MicroLock alock;
- volatile uint8_t d;
+ std::atomic<uint8_t> d;
} x;
uint8_t origB = 'b';