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

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

#include <arccore/concurrency/IThreadImplementation.h>

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.

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

◆ 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: