Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arccore::SpinLock

SpinLock. Plus de détails...

#include <arccore/concurrency/SpinLock.h>

+ Graphe de collaboration de Arccore::SpinLock:

Classes

class  ManualLock
 
class  ScopedLock
 

Types publics

enum class  eMode : uint8_t { None , Auto , FullSpin , SpinAndMutex }
 Mode du spinlock. Le défaut est 'Auto'. Plus de détails...
 

Fonctions membres publiques

 SpinLock ()
 SpinLock par défaut.
 
 SpinLock (eMode mode)
 SpinLock avec le mode mode.
 

Amis

class ScopedLock
 
class ManualLock
 

Description détaillée

Documentation des énumérations membres

◆ eMode

enum class Arccore::SpinLock::eMode : uint8_t
strong

Mode du spinlock. Le défaut est 'Auto'.

Valeurs énumérées
Auto 

Choix automatique.

Si Concurrency::getThreadImplementation()->isMultiThread() est vrai, alors le mode est SpinAndMutex. Sinon, le mode est None.

FullSpin 

Utilise toujours un spinlock.

Ce type est plus rapide s'il y a très peu de contention mais les performances sont très mauvaises dans le cas contraire.

SpinAndMutex 

SpinLock puis mutex.

Effectue un spinlock puis rend la main (std::this_thread::yield()) si cela dure trop longtemps. Ce mode n'est disponible que si on utilise le C++20. Sinon, il est équivalent à FullSpin.

Définition à la ligne 81 du fichier arccore/src/concurrency/arccore/concurrency/SpinLock.h.

Documentation des constructeurs et destructeur

◆ SpinLock() [1/2]

Arccore::SpinLock::SpinLock ( )

SpinLock par défaut.

Définition à la ligne 36 du fichier SpinLock.cc.

Références SpinAndMutex.

◆ SpinLock() [2/2]

Arccore::SpinLock::SpinLock ( eMode  mode)

SpinLock avec le mode mode.

Définition à la ligne 47 du fichier SpinLock.cc.

◆ ~SpinLock()

Arccore::SpinLock::~SpinLock ( )

Définition à la ligne 57 du fichier SpinLock.cc.

Documentation des fonctions amies et associées

◆ ManualLock

friend class ManualLock
friend

Définition à la ligne 76 du fichier arccore/src/concurrency/arccore/concurrency/SpinLock.h.

◆ ScopedLock

friend class ScopedLock
friend

Définition à la ligne 75 du fichier arccore/src/concurrency/arccore/concurrency/SpinLock.h.


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