HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TfSpinMutex::ScopedLock Struct Reference

#include <spinMutex.h>

Public Member Functions

 ScopedLock (TfSpinMutex &m)
 Construct a scoped lock for mutex m and acquire a lock. More...
 
 ScopedLock (TfSpinMutex &m, TfSpinMutex::DeferAcquire)
 
 ScopedLock ()=default
 Construct a scoped lock not associated with a mutex. More...
 
 ScopedLock (ScopedLock &&other) noexcept
 
ScopedLockoperator= (ScopedLock &&other) noexcept
 
 ~ScopedLock ()
 If this scoped lock is acquired, Release() it. More...
 
void Acquire (TfSpinMutex &m)
 
void Release ()
 
void Acquire ()
 
bool TryAcquire (TfSpinMutex &m)
 
bool TryAcquire ()
 

Detailed Description

Scoped lock utility class. API modeled roughly after tbb::spin_rw_mutex::scoped_lock.

Definition at line 58 of file spinMutex.h.

Constructor & Destructor Documentation

TfSpinMutex::ScopedLock::ScopedLock ( TfSpinMutex m)
inlineexplicit

Construct a scoped lock for mutex m and acquire a lock.

Definition at line 61 of file spinMutex.h.

TfSpinMutex::ScopedLock::ScopedLock ( TfSpinMutex m,
TfSpinMutex::DeferAcquire   
)
inline

Construct a scoped lock associated with mutex m but not yet acquired. Use Acquire() or TryAcquire() to acquire the lock.

Definition at line 67 of file spinMutex.h.

TfSpinMutex::ScopedLock::ScopedLock ( )
default

Construct a scoped lock not associated with a mutex.

TfSpinMutex::ScopedLock::ScopedLock ( ScopedLock &&  other)
inlinenoexcept

Construct a new lock taking the other lock's mutex association and acquisition state. Leave other not associated with a mutex.

Definition at line 74 of file spinMutex.h.

TfSpinMutex::ScopedLock::~ScopedLock ( )
inline

If this scoped lock is acquired, Release() it.

Definition at line 92 of file spinMutex.h.

Member Function Documentation

void TfSpinMutex::ScopedLock::Acquire ( TfSpinMutex m)
inline

If the current scoped lock is acquired, Release() it, then associate this lock with m and acquire a lock.

Definition at line 98 of file spinMutex.h.

void TfSpinMutex::ScopedLock::Acquire ( )
inline

Acquire a lock on this lock's associated mutex. This lock must not already be acquired when calling Acquire().

Definition at line 114 of file spinMutex.h.

ScopedLock& TfSpinMutex::ScopedLock::operator= ( ScopedLock &&  other)
inlinenoexcept

If this is not the same object as other, Release(), take the other lock's mutex association and acquisition state, and leave other not associated with a mutex. If this is the same object as other, do nothing. In either case, return *this.

Definition at line 82 of file spinMutex.h.

void TfSpinMutex::ScopedLock::Release ( )
inline

Release the currently required lock on the associated mutex. If this lock is not currently acquired, do nothing.

Definition at line 106 of file spinMutex.h.

bool TfSpinMutex::ScopedLock::TryAcquire ( TfSpinMutex m)
inline

If the current scoped lock is acquired, Release() it, then associate this lock with m and try to acquire a lock. Return true if the lock was successfully acquired, false if not.

Definition at line 124 of file spinMutex.h.

bool TfSpinMutex::ScopedLock::TryAcquire ( )
inline

Try to acquire a lock on this lock's associated mutex. The lock must not already be acquired when calling TryAcquire(). Return true if the lock was successfully acquired, false if not.

Definition at line 133 of file spinMutex.h.


The documentation for this struct was generated from the following file: