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

Implementation of ITreadImplementation using the standard C++ library. More...

Inheritance diagram for Arcane::Concurrency::StdThreadImplementation:
Collaboration diagram for Arcane::Concurrency::StdThreadImplementation:

Public Member Functions

 StdThreadImplementation (bool use_legacy_barrier)
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 *) override
void lockMutex (MutexImpl *mutex) override
void unlockMutex (MutexImpl *mutex) override
Int64 currentThread () override
IThreadBarriercreateBarrier () override
void addReference () override
void removeReference () 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 ()

Private Attributes

MutexImpl * m_global_mutex_impl = nullptr
bool m_use_legacy_barrier = false

Detailed Description

Implementation of ITreadImplementation using the standard C++ library.

Definition at line 41 of file StdThreadImplementation.cc.

Constructor & Destructor Documentation

◆ StdThreadImplementation()

Arcane::Concurrency::StdThreadImplementation::StdThreadImplementation ( bool use_legacy_barrier)
explicit

Definition at line 198 of file StdThreadImplementation.cc.

◆ ~StdThreadImplementation()

Arcane::Concurrency::StdThreadImplementation::~StdThreadImplementation ( )
override

Definition at line 204 of file StdThreadImplementation.cc.

Member Function Documentation

◆ addReference()

void Arcane::Concurrency::StdThreadImplementation::addReference ( )
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 77 of file StdThreadImplementation.cc.

◆ createBarrier()

IThreadBarrier * Arcane::Concurrency::StdThreadImplementation::createBarrier ( )
overridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 292 of file StdThreadImplementation.cc.

◆ createMutex()

MutexImpl * Arcane::Concurrency::StdThreadImplementation::createMutex ( )
overridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 257 of file StdThreadImplementation.cc.

◆ createSpinLock()

void Arcane::Concurrency::StdThreadImplementation::createSpinLock ( Int64 * spin_lock_addr)
overridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 239 of file StdThreadImplementation.cc.

◆ createThread()

ThreadImpl * Arcane::Concurrency::StdThreadImplementation::createThread ( IFunctor * f)
overridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 219 of file StdThreadImplementation.cc.

◆ currentThread()

Int64 Arcane::Concurrency::StdThreadImplementation::currentThread ( )
overridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 285 of file StdThreadImplementation.cc.

◆ destroyMutex()

void Arcane::Concurrency::StdThreadImplementation::destroyMutex ( MutexImpl * mutex)
overridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 264 of file StdThreadImplementation.cc.

◆ destroyThread()

void Arcane::Concurrency::StdThreadImplementation::destroyThread ( ThreadImpl * t)
overridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 232 of file StdThreadImplementation.cc.

◆ initialize()

void Arcane::Concurrency::StdThreadImplementation::initialize ( )
overridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 212 of file StdThreadImplementation.cc.

◆ joinThread()

void Arcane::Concurrency::StdThreadImplementation::joinThread ( ThreadImpl * t)
overridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 225 of file StdThreadImplementation.cc.

◆ lockMutex()

void Arcane::Concurrency::StdThreadImplementation::lockMutex ( MutexImpl * mutex)
overridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 271 of file StdThreadImplementation.cc.

◆ lockSpinLock()

void Arcane::Concurrency::StdThreadImplementation::lockSpinLock ( Int64 * spin_lock_addr,
Int64 * scoped_spin_lock_addr )
overridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 245 of file StdThreadImplementation.cc.

◆ removeReference()

void Arcane::Concurrency::StdThreadImplementation::removeReference ( )
inlineoverridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 78 of file StdThreadImplementation.cc.

◆ unlockMutex()

void Arcane::Concurrency::StdThreadImplementation::unlockMutex ( MutexImpl * mutex)
overridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 278 of file StdThreadImplementation.cc.

◆ unlockSpinLock()

void Arcane::Concurrency::StdThreadImplementation::unlockSpinLock ( Int64 * spin_lock_addr,
Int64 * scoped_spin_lock_addr )
overridevirtual

Implements Arcane::IThreadImplementation.

Definition at line 251 of file StdThreadImplementation.cc.

Member Data Documentation

◆ m_global_mutex_impl

MutexImpl* Arcane::Concurrency::StdThreadImplementation::m_global_mutex_impl = nullptr
private

Definition at line 82 of file StdThreadImplementation.cc.

◆ m_use_legacy_barrier

bool Arcane::Concurrency::StdThreadImplementation::m_use_legacy_barrier = false
private

Definition at line 83 of file StdThreadImplementation.cc.


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