Loading...
Searching...
No Matches
tf::CachelineAligned< T > Class Template Reference

class to ensure cacheline-aligned storage for an object. More...

#include <taskflow/utility/os.hpp>

Public Member Functions

T & get ()
 accesses the underlying object
 
const T & get () const
 accesses the underlying object as a constant reference
 

Public Attributes

data
 The stored object, aligned to twice the cacheline size.
 

Detailed Description

template<typename T>
class tf::CachelineAligned< T >

class to ensure cacheline-aligned storage for an object.

Template Parameters
TThe type of the stored object.

This utility class 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
// 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();
class to ensure cacheline-aligned storage for an object.
Definition os.hpp:148
T & get()
accesses the underlying object
Definition os.hpp:160

Member Function Documentation

◆ get() [1/2]

template<typename T >
T & tf::CachelineAligned< T >::get ( )
inline

accesses the underlying object

Returns
a reference to the underlying object.

◆ get() [2/2]

template<typename T >
const T & tf::CachelineAligned< T >::get ( ) const
inline

accesses the underlying object as a constant reference

Returns
a constant reference to the underlying object.

The documentation for this class was generated from the following file: