BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bslmt::MeteredMutex Class Reference

#include <bslmt_meteredmutex.h>

Public Member Functions

 MeteredMutex ()
 Create a metered mutex in the unlocked state.
 
 ~MeteredMutex ()
 Destroy this metered mutex.
 
void lock ()
 
void resetMetrics ()
 
int tryLock ()
 
void unlock ()
 
bsls::Types::Int64 holdTime () const
 
bsls::Types::Int64 lastResetTime () const
 
bsls::Types::Int64 waitTime () const
 

Detailed Description

This class implements a mutex, that has the additional capability to keep track of hold time and wait time. The hold time is defined as the cumulative duration for which the mutex was in the locked state. The wait time is defined as the duration for which threads waited for the mutex.

See bslmt_meteredmutex

Constructor & Destructor Documentation

◆ MeteredMutex()

bslmt::MeteredMutex::MeteredMutex ( )
inline

◆ ~MeteredMutex()

bslmt::MeteredMutex::~MeteredMutex ( )
inline

Member Function Documentation

◆ holdTime()

bsls::Types::Int64 bslmt::MeteredMutex::holdTime ( ) const
inline

Return the hold time (in nanoseconds) accumulated since the most recent call to resetMetrics (or MeteredMutex if resetMetrics was never called).

◆ lastResetTime()

bsls::Types::Int64 bslmt::MeteredMutex::lastResetTime ( ) const
inline

Return the time in nanoseconds (referenced to an arbitrary but fixed origin) of the most recent invocation to resetMetrics (or creation time if resetMetrics was never invoked). User can calculate the difference (in nanoseconds) between the current time and the last reset time by expression bsls::TimeUtil::getTimer() - clientMutex.lastResetTime().

◆ lock()

void bslmt::MeteredMutex::lock ( )
inline

Acquire the lock on this metered mutex. If this mutex is currently locked, suspend the execution of the current thread until the lock can be acquired. Update the wait and hold time appropriately. The behavior is undefined if the calling thread already owns the lock.

◆ resetMetrics()

void bslmt::MeteredMutex::resetMetrics ( )

Reset the wait and hold time to zero and record the current time. All subsequent calls (that are made before a subsequent call to resetMetrics) to waitTime (or holdTime) will return the wait (or hold) time, accumulated since this call. Also, all subsequent calls (that are made before a subsequent call to resetMetrics) to lastResetTime will return the time of this call.

◆ tryLock()

int bslmt::MeteredMutex::tryLock ( )
inline

Attempt to acquire the lock on this metered mutex. Return 0 on success, and a non-zero value if this mutex is already locked, or if an error occurs. Update the wait and hold time appropriately. The behavior is undefined if the calling thread already owns the lock.

◆ unlock()

void bslmt::MeteredMutex::unlock ( )
inline

Release the lock on this mutex that was previously acquired through a successful call to lock or tryLock. Update the hold time appropriately. The behavior is undefined unless the calling thread currently owns the lock.

◆ waitTime()

bsls::Types::Int64 bslmt::MeteredMutex::waitTime ( ) const
inline

Return the wait time (in nanoseconds), accumulated since the most recent call to resetMetrics (or MeteredMutex if resetMetrics was never called).


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