Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::IThreadImplementation Class Referenceabstract

Interface of a service implementing thread support. More...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/concurrency/arccore/concurrency/IThreadImplementation.h>

Inheritance diagram for Arcane::IThreadImplementation:
Collaboration diagram for Arcane::IThreadImplementation:

Public Member Functions

virtual void addReference ()=0
virtual void removeReference ()=0
virtual void initialize ()=0
virtual ThreadImpl * createThread (IFunctor *f)=0
virtual void joinThread (ThreadImpl *t)=0
virtual void destroyThread (ThreadImpl *t)=0
virtual void createSpinLock (Int64 *spin_lock_addr)=0
virtual void lockSpinLock (Int64 *spin_lock_addr, Int64 *scoped_spin_lock_addr)=0
virtual void unlockSpinLock (Int64 *spin_lock_addr, Int64 *scoped_spin_lock_addr)=0
virtual MutexImpl * createMutex ()=0
virtual void destroyMutex (MutexImpl *)=0
virtual void lockMutex (MutexImpl *mutex)=0
virtual void unlockMutex (MutexImpl *mutex)=0
virtual Int64 currentThread ()=0
virtual IThreadBarriercreateBarrier ()=0
virtual bool isMultiThread () const
 True if the implementation supports multiple threads.

Private Member Functions

 ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS ()
void _deprecatedCreateSpinLock (Int64 *spin_lock_addr)
void _deprecatedLockSpinLock (Int64 *spin_lock_addr, Int64 *scoped_spin_lock_addr)
void _deprecatedUnlockSpinLock (Int64 *spin_lock_addr, Int64 *scoped_spin_lock_addr)

Friends

class SpinLock
class ScopedLock
class ManualLock

Detailed Description

Interface of a service implementing thread support.

This service uses a reference counter and must be destroyed if there are no more references to it. It should therefore generally not be destroyed explicitly.

Definition at line 37 of file arccore/src/concurrency/arccore/concurrency/IThreadImplementation.h.

Member Function Documentation

◆ _deprecatedCreateSpinLock()

void Arcane::IThreadImplementation::_deprecatedCreateSpinLock ( Int64 * spin_lock_addr)
private

Definition at line 103 of file ConcurrencyGlobal.cc.

◆ _deprecatedLockSpinLock()

void Arcane::IThreadImplementation::_deprecatedLockSpinLock ( Int64 * spin_lock_addr,
Int64 * scoped_spin_lock_addr )
private

Definition at line 112 of file ConcurrencyGlobal.cc.

◆ _deprecatedUnlockSpinLock()

void Arcane::IThreadImplementation::_deprecatedUnlockSpinLock ( Int64 * spin_lock_addr,
Int64 * scoped_spin_lock_addr )
private

Definition at line 121 of file ConcurrencyGlobal.cc.

◆ isMultiThread()

virtual bool Arcane::IThreadImplementation::isMultiThread ( ) const
inlinevirtual

True if the implementation supports multiple threads.

In single-thread mode, only one thread executes. Therefore, there is no need to create synchronization management classes such as Mutexes or SpinLocks.

Reimplemented in Arcane::NullThreadImplementation.

Definition at line 90 of file arccore/src/concurrency/arccore/concurrency/IThreadImplementation.h.

◆ ManualLock

friend class ManualLock
friend

◆ ScopedLock

friend class ScopedLock
friend

◆ SpinLock

friend class SpinLock
friend

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