Quick Links:

bal | bbl | bdl | bsl

Public Member Functions | Public Attributes

bsls::BslOnce Struct Reference

#include <bsls_bslonce.h>

List of all members.

Public Member Functions

bool enter ()
void leave ()

Public Attributes

bsls::AtomicOperations::AtomicTypes::Int d_onceState

Detailed Description

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.

See Component bsls_bslonce


Member Function Documentation

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.


Member Data Documentation

bsls::AtomicOperations::AtomicTypes::Int bsls::BslOnce::d_onceState

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