GlobalObjects
Lade ...
Suche ...
Keine Treffer
eut::CriticalSection Klassenreferenz

Ist ein Mutex, welcher über sein Lock-Modus abgefragt werden kann. Siehe isLocked(). Mehr ...

#include <EuCriticalSection.h>

Öffentliche Methoden

 CriticalSection ()
 
 CriticalSection (const CriticalSection &rT)
 
virtual ~CriticalSection ()
 
bool isLocked () const
 
void lock ()
 
CriticalSectionoperator= (const CriticalSection &rT)
 
void unlock ()
 

Private Attribute

bool m_bIsLocked
 
std::mutex m_ExclusiveAccessMutex
 

Ausführliche Beschreibung

Ist ein Mutex, welcher über sein Lock-Modus abgefragt werden kann. Siehe isLocked().

Beispiel

void MyClass::makeAnyThing()
{
m_MyCriticalSection->lock();
// Ein Zugriff von einem Thread auf m_pMyPrivateClass->makeManyThings() über
// diese Methode verhindert, dass anderere Threads auf diese Metode (bzw.
// andere Methoden die mit m_MyLocalCriticalSection abgesichert sind)
// zugreifen können, bevor die CriticalSection mit unlock() vom ersten Tread
// beendet ist.
this->makeManyThings();
// hier ggf. eine Exception fangen, wenn eine geworfen werden kann.
m_MyCriticalSection->unlock();
}
Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ CriticalSection() [1/2]

eut::CriticalSection::CriticalSection ( )

Konstruktor.

◆ ~CriticalSection()

virtual eut::CriticalSection::~CriticalSection ( )
virtual

Destruktor.

◆ CriticalSection() [2/2]

eut::CriticalSection::CriticalSection ( const CriticalSection & rT)

Copy-Konstruktor.

Parameter
[in]rTVon diesem Objekt werden die Daten übernommen.

Dokumentation der Elementfunktionen

◆ isLocked()

bool eut::CriticalSection::isLocked ( ) const

Ist die CriticalSection in Sperrmodus?

Rückgabe
Wenn true, dann im Sperrmodus.

◆ lock()

void eut::CriticalSection::lock ( )

Initiiert eine CriticalSection.

Achtung
Die CriticalSection muß unbedingt irgendwann wieder beendet werden.

◆ operator=()

CriticalSection & eut::CriticalSection::operator= ( const CriticalSection & rT)

Zuweisungsoperator.

Parameter
[in]rTVon diesem Objekt werden die Daten übernommen.

◆ unlock()

void eut::CriticalSection::unlock ( )

Beendet eine CriticalSection.

Dokumentation der Datenelemente

◆ m_bIsLocked

bool eut::CriticalSection::m_bIsLocked
private

Wenn eine CriticalSection den Zugriff sperrt, wird dieses Attribut auf true und beim Freigeben wieder auf false gesetzt.

◆ m_ExclusiveAccessMutex

std::mutex eut::CriticalSection::m_ExclusiveAccessMutex
private

Einen Mutex um z.B. lokale Variablen zu schützen.

Siehe auch
lock() und unlock()

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: