Interface d'une barrière entre threads. Plus de détails...
Fonctions membres publiques | |
virtual void | init (Integer nb_thread)=0 |
Initialise la barrière pour nb_thread. | |
virtual void | destroy ()=0 |
Détruit la barrière. | |
virtual bool | wait ()=0 |
Bloque et attend que tous les threads appellent cette méthode. | |
Interface d'une barrière entre threads.
Une fois créée (via IThreadImplementation::createBarrier()), la barrière doit être initialisée via init() pour n threads. Ensuite, chaque thread doit appeler la méthode wait() pour attendre que tous les autres thread arrivent à ce même point. La barrière peut être utilisée plusieurs fois. Pour détruire la barrière, il faut appeler destroy(). Cela libère aussi l'instance qui ne doit ensuite plus être utilisée.
Définition à la ligne 39 du fichier arccore/src/concurrency/arccore/concurrency/IThreadBarrier.h.
|
inlineprotectedvirtual |
Définition à la ligne 43 du fichier arccore/src/concurrency/arccore/concurrency/IThreadBarrier.h.
|
pure virtual |
Détruit la barrière.
Implémenté dans Arcane::TBBBarrier, Arccore::GlibThreadBarrier, Arccore::NullThreadBarrier, et Arccore::Concurrency::StdThreadBarrier.
|
pure virtual |
Initialise la barrière pour nb_thread.
Implémenté dans Arccore::GlibThreadBarrier, Arccore::NullThreadBarrier, et Arccore::Concurrency::StdThreadBarrier.
|
pure virtual |
Bloque et attend que tous les threads appellent cette méthode.
true | si on est le dernier thread qui appelle cette méthode. |
false | sinon. |
Implémenté dans Arcane::TBBBarrier, Arccore::GlibThreadBarrier, Arccore::NullThreadBarrier, et Arccore::Concurrency::StdThreadBarrier.
Référencé par Arcane::MessagePassing::HybridParallelMng::barrier(), Arcane::MessagePassing::SharedMemoryParallelMng::barrier(), et Arcane::MessagePassing::HybridParallelMng::createSubParallelMngRef().