blob: 1c5f414fa13a81d350f4b6e7d32e755ad6654190 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#ifndef SRC_ATOMIC_POLYFILL_H_
#define SRC_ATOMIC_POLYFILL_H_
#include "util.h"
namespace nonstd {
template <typename T>
struct atomic {
atomic() = default;
T exchange(T value) { return __sync_lock_test_and_set(&value_, value); }
T value_ = T();
DISALLOW_COPY_AND_ASSIGN(atomic);
};
} // namespace nonstd
#endif // SRC_ATOMIC_POLYFILL_H_
|