ON_Lock is a thread safe lock semephore. It is implemented using platform specfic compare and set functions. More...

#include <opennurbs_lock.h>

Public Types

enum  : int { UnlockedValue = 0, DefaultLockedValue = 1, InvalidLockValue = -1 }
 ON_Lock::InvalidLockValue (= -1) may never be used as a lock value. More...
 

Public Member Functions

 ON_Lock ()=default
 
 ON_Lock (const ON_Lock &)=default
 
 ~ON_Lock ()=default
 
int BreakLock ()
 Unconditionally sets the lock value to ON_Lock::UnlockedValue. More...
 
bool GetDefaultLock ()
 Calls GetLock(ON_Lock::DefaultLockedValue); More...
 
bool GetLock (int lock_value)
 
int IsLocked ()
 
ON_Lockoperator= (const ON_Lock &)=default
 
bool ReturnDefaultLock ()
 Calls ReturnLock(ON_Lock::DefaultLockedValue); More...
 
bool ReturnLock (int lock_value)
 

Detailed Description

ON_Lock is a thread safe lock semephore. It is implemented using platform specfic compare and set functions.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum : int

ON_Lock::InvalidLockValue (= -1) may never be used as a lock value.

Enumerator
UnlockedValue 
DefaultLockedValue 
InvalidLockValue 

Constructor & Destructor Documentation

◆ ON_Lock() [1/2]

ON_Lock::ON_Lock ( )
default

◆ ~ON_Lock()

ON_Lock::~ON_Lock ( )
default

◆ ON_Lock() [2/2]

ON_Lock::ON_Lock ( const ON_Lock )
default

Member Function Documentation

◆ BreakLock()

int ON_Lock::BreakLock ( )

Unconditionally sets the lock value to ON_Lock::UnlockedValue.

Returns
previous value of the lock. ON_Lock::UnlockedValue indicates the lock was available otherwise the lock passed to GetLock() is returned

◆ GetDefaultLock()

bool ON_Lock::GetDefaultLock ( )

Calls GetLock(ON_Lock::DefaultLockedValue);

Returns
True if the lock state was unlocked and the current lock value was changed from ON_Lock::UnlockedValue to ON_Lock::DefaultLockedValue. False otherwise.

◆ GetLock()

bool ON_Lock::GetLock ( int  lock_value)
Parameters
lock_value[in] any value except ON_Lock::UnlockedValue or ON_Lock::InvalidLockValue. Typically ON_Lock::DefaultLockedValue is used.
Returns
True if the lock_value parameter was valid and the current lock value was changed from ON_Lock::UnlockedValue to lock_value. False otherwise.

◆ IsLocked()

int ON_Lock::IsLocked ( )
Returns
Current lock value ON_Lock::UnlockedValue indicates the the resource protected by the lock is available.

◆ operator=()

ON_Lock& ON_Lock::operator= ( const ON_Lock )
default

◆ ReturnDefaultLock()

bool ON_Lock::ReturnDefaultLock ( )

Calls ReturnLock(ON_Lock::DefaultLockedValue);

Returns
True if the lock state was locked with a locak value = ON_Lock::DefaultLockedValue and the current lock value was changed from ON_Lock::DefaultLockedValue to ON_Lock::UnlockedValue. False otherwise.

◆ ReturnLock()

bool ON_Lock::ReturnLock ( int  lock_value)
Parameters
lock_value[in] any value except ON_Lock::UnlockedValue or ON_Lock::InvalidLockValue. Typically this is the value that was passed to GetLock().
Returns
True if the lock_value parameter was valid and the current lock value was changed from that value to zero. False otherwise.