Interface d'un service implémentant le support des threads. Plus de détails...
#include <arccore/concurrency/IThreadImplementation.h>
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 IThreadBarrier * | createBarrier ()=0 |
virtual bool | isMultiThread () const |
Vrai si l'implémentation supporte plusieurs threads. | |
Amis | |
class | SpinLock |
class | ScopedLock |
class | ManualLock |
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.
|
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.
|
friend |
Définition à la ligne 44 du fichier arccore/src/concurrency/arccore/concurrency/IThreadImplementation.h.
|
friend |
Définition à la ligne 43 du fichier arccore/src/concurrency/arccore/concurrency/IThreadImplementation.h.
|
friend |
Définition à la ligne 42 du fichier arccore/src/concurrency/arccore/concurrency/IThreadImplementation.h.