Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arccore::IThreadImplementationabstract

Interface d'un service implémentant le support des threads. Plus de détails...

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

+ Graphe d'héritage de Arccore::IThreadImplementation:
+ Graphe de collaboration de Arccore::IThreadImplementation:

Fonctions membres publiques

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
 Vrai si l'implémentation supporte plusieurs threads.
 

Fonctions membres privées

 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)
 

Amis

class SpinLock
 
class ScopedLock
 
class ManualLock
 

Description détaillée

Interface d'un service implémentant le support des threads.

Ce service utilise un compteur de référence et doit être détruit s'il n'y a plus de références dessus. Il ne doit donc en général pas être détruit explicitement.

Définition à la ligne 36 du fichier arccore/src/concurrency/arccore/concurrency/IThreadImplementation.h.

Documentation des fonctions membres

◆ _deprecatedCreateSpinLock()

void Arccore::IThreadImplementation::_deprecatedCreateSpinLock ( Int64 spin_lock_addr)
private

Définition à la ligne 96 du fichier ConcurrencyGlobal.cc.

◆ _deprecatedLockSpinLock()

void Arccore::IThreadImplementation::_deprecatedLockSpinLock ( Int64 spin_lock_addr,
Int64 scoped_spin_lock_addr 
)
private

Définition à la ligne 105 du fichier ConcurrencyGlobal.cc.

◆ _deprecatedUnlockSpinLock()

void Arccore::IThreadImplementation::_deprecatedUnlockSpinLock ( Int64 spin_lock_addr,
Int64 scoped_spin_lock_addr 
)
private

Définition à la ligne 114 du fichier ConcurrencyGlobal.cc.

◆ isMultiThread()

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

Vrai si l'implémentation supporte plusieurs threads.

En mono-thread, seul un thread s'exécute. Il n'y a donc pas besoin de créer les classes gérant la synchronisation telles que les Mutex ou les SpinLock.

Réimplémentée dans Arccore::NullThreadImplementation.

Définition à la ligne 90 du fichier arccore/src/concurrency/arccore/concurrency/IThreadImplementation.h.

Documentation des fonctions amies et associées

◆ ManualLock

friend class ManualLock
friend

◆ ScopedLock

friend class ScopedLock
friend

◆ SpinLock

friend class SpinLock
friend

La documentation de cette classe a été générée à partir des fichiers suivants :