![]() |
MySQL 8.0.43
Source Code Documentation
|
Sentry class for Shared_spin_lock to deliver RAII pattern usability.
More...
#include <shared_spin_lock.h>
Public Member Functions | |
| Guard (Shared_spin_lock &target, enum_lock_acquisition acquisition=enum_lock_acquisition::SL_SHARED, bool try_and_fail=false) | |
| Class constructor that receives the target spin-lock, whether or not it can be a shared acquisition and whether or not it should be a try-and-fail lock attempt, instead of a blocking attempt. More... | |
| Guard (Shared_spin_lock::Guard const &)=delete | |
| Guard (Shared_spin_lock::Guard &&)=delete | |
| virtual | ~Guard () |
| Destructor for the sentry. More... | |
| Shared_spin_lock::Guard & | operator= (Shared_spin_lock::Guard const &)=delete |
| Shared_spin_lock::Guard & | operator= (Shared_spin_lock::Guard &&)=delete |
| Shared_spin_lock * | operator-> () |
| Arrow operator to access the underlying lock. More... | |
| Shared_spin_lock & | operator* () |
| Star operator to access the underlying lock. More... | |
| Shared_spin_lock::Guard & | acquire (enum_lock_acquisition acquisition, bool try_and_fail=false) |
If this instance was initialized without acquiring the lock (NO_ACQUISITION passed to constructor) or the acquisition request wasn't granted (passing try_and_fail = true to the constructor), invoking this method will try to acquire the lock in the provided mode. More... | |
| Shared_spin_lock::Guard & | release () |
| Releases the underlying lock acquisition, if any. More... | |
Private Attributes | |
| Shared_spin_lock & | m_target |
| The underlying lock. More... | |
| enum_lock_acquisition | m_acquisition {enum_lock_acquisition::SL_SHARED} |
| The type of lock acquisition to be requested. More... | |
Friends | |
| class | Shared_spin_lock |
Sentry class for Shared_spin_lock to deliver RAII pattern usability.
| lock::Shared_spin_lock::Guard::Guard | ( | lock::Shared_spin_lock & | target, |
| enum_lock_acquisition | acquisition = enum_lock_acquisition::SL_SHARED, |
||
| bool | try_and_fail = false |
||
| ) |
Class constructor that receives the target spin-lock, whether or not it can be a shared acquisition and whether or not it should be a try-and-fail lock attempt, instead of a blocking attempt.
| target | The target spin-lock. |
| acquisition | the acquisition type, SHARED, EXCLUSIVE or NO_ACQUISITION |
| try_and_fail | whether or not the lock attempt should be blocking (only used if acquisition type is SHARED or EXCLUSIVE). |
|
delete |
|
delete |
|
virtual |
Destructor for the sentry.
It will release any acquisition, shared or exclusive.
| lock::Shared_spin_lock::Guard & lock::Shared_spin_lock::Guard::acquire | ( | enum_lock_acquisition | acquisition, |
| bool | try_and_fail = false |
||
| ) |
If this instance was initialized without acquiring the lock (NO_ACQUISITION passed to constructor) or the acquisition request wasn't granted (passing try_and_fail = true to the constructor), invoking this method will try to acquire the lock in the provided mode.
| acquisition | the acquisition type, SHARED or EXCLUSIVE |
| try_and_fail | whether or not the lock attempt should be blocking |
this object, for chaining purposes. | lock::Shared_spin_lock & lock::Shared_spin_lock::Guard::operator* | ( | ) |
Star operator to access the underlying lock.
| lock::Shared_spin_lock * lock::Shared_spin_lock::Guard::operator-> | ( | ) |
Arrow operator to access the underlying lock.
|
delete |
|
delete |
| lock::Shared_spin_lock::Guard & lock::Shared_spin_lock::Guard::release | ( | ) |
Releases the underlying lock acquisition, if any.
this object, for chaining purposes.
|
friend |
|
private |
The type of lock acquisition to be requested.
|
private |
The underlying lock.