Quick Links: |
#include <bsls_bslonce.h>
Public Member Functions | |
bool | enter () |
void | leave () |
Public Attributes | |
bsls::AtomicOperations::AtomicTypes::Int | d_onceState |
This struct
provides a simple data type for ensuring a block of code is executed (only) once. Note that this is defined as a struct
to allow constant initialization in a global or static context using BSLS_BSLONCE_INITIALIZER
.
bool bsls::BslOnce::enter | ( | ) |
Enter the one-time block of code. Return true
if the one-time block of code has been entered, and false
if the one-time block of code has already been executed. If this function returns false
then the thread of execution in which enter
returned true
has already called leave
-- i.e., the one-time block of code is guaranteed to have completed execution. The behavior is undefined unless this object was originally initialized to BSLS_BSLONCE_INITIALIZER
. Note that a successful enter
locks a spin-lock; it is imperative that leave
be called quickly.
void bsls::BslOnce::leave | ( | ) |
Exit the one-time block of code. The behavior is undefined unless the caller had previously called enter
, and enter
had returned true
.
bsls::AtomicOperations::AtomicTypes::Int bsls::BslOnce::d_onceState |