Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::TBBThreadImplementation Class Reference

Implementation of threads using TBB (Intel Threads Building Blocks). More...

Inheritance diagram for Arcane::TBBThreadImplementation:
Collaboration diagram for Arcane::TBBThreadImplementation:

Classes

class  StartFunc

Public Member Functions

void build ()
void initialize () override
ThreadImpl * createThread (IFunctor *f) override
void joinThread (ThreadImpl *t) override
void destroyThread (ThreadImpl *t) override
void createSpinLock (Int64 *spin_lock_addr) override
void lockSpinLock (Int64 *spin_lock_addr, Int64 *scoped_spin_lock_addr) override
void unlockSpinLock (Int64 *spin_lock_addr, Int64 *scoped_spin_lock_addr) override
MutexImpl * createMutex () override
void destroyMutex (MutexImpl *mutex) override
void lockMutex (MutexImpl *mutex) override
void unlockMutex (MutexImpl *mutex) override
Int64 currentThread () override
IThreadBarriercreateBarrier () override
Public Member Functions inherited from Arcane::IThreadImplementation
virtual bool isMultiThread () const
 True if the implementation supports multiple threads.
Public Member Functions inherited from Arcane::ReferenceCounterImpl
void addReference ()
void removeReference ()
void _internalAddReference ()
bool _internalRemoveReference ()

Private Member Functions

 ARCCORE_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS ()
void addReference () override
void removeReference () override

Private Attributes

bool m_use_tbb_barrier = false
MutexImpl * m_global_mutex_impl = nullptr
Ref< IThreadImplementationm_std_thread_implementation

Detailed Description

Implementation of threads using TBB (Intel Threads Building Blocks).

Definition at line 138 of file TBBThreadImplementation.cc.

Constructor & Destructor Documentation

◆ TBBThreadImplementation()

Arcane::TBBThreadImplementation::TBBThreadImplementation ( )
inline

Definition at line 162 of file TBBThreadImplementation.cc.

◆ ~TBBThreadImplementation()

Arcane::TBBThreadImplementation::~TBBThreadImplementation ( )
inlineoverride

Definition at line 169 of file TBBThreadImplementation.cc.

Member Function Documentation

◆ addReference()

void Arcane::TBBThreadImplementation::addReference ( )
inlineoverrideprivatevirtual

Implements Arcane::IThreadImplementation.

Definition at line 144 of file TBBThreadImplementation.cc.

◆ build()

void Arcane::TBBThreadImplementation::build ( )
inline

Definition at line 179 of file TBBThreadImplementation.cc.

◆ createBarrier()

IThreadBarrier * Arcane::TBBThreadImplementation::createBarrier ( )
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 252 of file TBBThreadImplementation.cc.

◆ createMutex()

MutexImpl * Arcane::TBBThreadImplementation::createMutex ( )
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 225 of file TBBThreadImplementation.cc.

◆ createSpinLock()

void Arcane::TBBThreadImplementation::createSpinLock ( Int64 * spin_lock_addr)
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 206 of file TBBThreadImplementation.cc.

◆ createThread()

ThreadImpl * Arcane::TBBThreadImplementation::createThread ( IFunctor * f)
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 191 of file TBBThreadImplementation.cc.

◆ currentThread()

Int64 Arcane::TBBThreadImplementation::currentThread ( )
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 246 of file TBBThreadImplementation.cc.

◆ destroyMutex()

void Arcane::TBBThreadImplementation::destroyMutex ( MutexImpl * mutex)
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 230 of file TBBThreadImplementation.cc.

◆ destroyThread()

void Arcane::TBBThreadImplementation::destroyThread ( ThreadImpl * t)
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 200 of file TBBThreadImplementation.cc.

◆ initialize()

void Arcane::TBBThreadImplementation::initialize ( )
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 183 of file TBBThreadImplementation.cc.

◆ joinThread()

void Arcane::TBBThreadImplementation::joinThread ( ThreadImpl * t)
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 195 of file TBBThreadImplementation.cc.

◆ lockMutex()

void Arcane::TBBThreadImplementation::lockMutex ( MutexImpl * mutex)
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 235 of file TBBThreadImplementation.cc.

◆ lockSpinLock()

void Arcane::TBBThreadImplementation::lockSpinLock ( Int64 * spin_lock_addr,
Int64 * scoped_spin_lock_addr )
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 211 of file TBBThreadImplementation.cc.

◆ removeReference()

void Arcane::TBBThreadImplementation::removeReference ( )
inlineoverrideprivatevirtual

Implements Arcane::IThreadImplementation.

Definition at line 145 of file TBBThreadImplementation.cc.

◆ unlockMutex()

void Arcane::TBBThreadImplementation::unlockMutex ( MutexImpl * mutex)
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 240 of file TBBThreadImplementation.cc.

◆ unlockSpinLock()

void Arcane::TBBThreadImplementation::unlockSpinLock ( Int64 * spin_lock_addr,
Int64 * scoped_spin_lock_addr )
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 217 of file TBBThreadImplementation.cc.

Member Data Documentation

◆ m_global_mutex_impl

MutexImpl* Arcane::TBBThreadImplementation::m_global_mutex_impl = nullptr
private

Definition at line 266 of file TBBThreadImplementation.cc.

◆ m_std_thread_implementation

Ref<IThreadImplementation> Arcane::TBBThreadImplementation::m_std_thread_implementation
private

Definition at line 267 of file TBBThreadImplementation.cc.

◆ m_use_tbb_barrier

bool Arcane::TBBThreadImplementation::m_use_tbb_barrier = false
private

Definition at line 265 of file TBBThreadImplementation.cc.


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