template<typename T>
CachelineAligned struct
struct to ensure cacheline-aligned storage for an object.
Template parameters | |
---|---|
T | The type of the stored object. |
This utility struct aligns the stored object data
to twice the size of a cacheline. The alignment improves performance by optimizing data access in cache-sensitive scenarios.
// create two integers on two separate cachelines to avoid false sharing tf::CachelineAligned<int> counter1; tf::CachelineAligned<int> counter2; // two threads access the two counters without false sharing std::thread t1([&]{ counter1.get() = 1; }); std::thread t2([&]{ counter2.get() = 2; }); t1.join(); t2.join();
Public functions
Public variables
- T data
- The stored object, aligned to twice the cacheline size.
Function documentation
template<typename T>
T& tf:: CachelineAligned<T>:: get()
accesses the underlying object
Returns | a reference to the underlying object. |
---|
template<typename T>
const T& tf:: CachelineAligned<T>:: get() const
accesses the underlying object as a constant reference
Returns | a constant reference to the underlying object. |
---|