#include <arccore/concurrency/SpinLock.h>
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 |
Définition à la ligne 38 du fichier arccore/src/concurrency/arccore/concurrency/SpinLock.h.
|
strong |
Mode du spinlock. Le défaut est 'Auto'.
Valeurs énumérées | |
---|---|
Auto | Choix automatique. Si |
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.
Arccore::SpinLock::SpinLock | ( | ) |
Arccore::SpinLock::SpinLock | ( | eMode | mode | ) |
SpinLock avec le mode mode.
Définition à la ligne 47 du fichier SpinLock.cc.
Arccore::SpinLock::~SpinLock | ( | ) |
Définition à la ligne 57 du fichier SpinLock.cc.
|
friend |
Définition à la ligne 76 du fichier arccore/src/concurrency/arccore/concurrency/SpinLock.h.
|
friend |
Définition à la ligne 75 du fichier arccore/src/concurrency/arccore/concurrency/SpinLock.h.