ladivic
|
Provides utilities for atomic operations with mutex protection in C++. More...
#include <atomic>
#include <mutex>
Go to the source code of this file.
Functions | |
template<typename T > | |
void | ldvc_atomic_create (std::atomic< T > &var, std::mutex &mutex, T value) |
Initializes an std::atomic variable with the specified initial value under the protection of a mutex. | |
template<typename T > | |
void | ldvc_atomic_delete (std::atomic< T > &var, std::mutex &mutex) |
Resets an std::atomic variable to its default-constructed value under the protection of a mutex. | |
template<typename T > | |
void | ldvc_atomic_inc (std::atomic< T > &var, std::mutex &mutex, T arg) |
Atomically increments the value of an std::atomic variable by the specified amount under the protection of a mutex. | |
template<typename T > | |
void | ldvc_atomic_dec (std::atomic< T > &var, std::mutex &mutex, T arg) |
Atomically decrements the value of an std::atomic variable by the specified amount under the protection of a mutex. | |
template<typename T > | |
void | ldvc_atomic_and (std::atomic< T > &var, std::mutex &mutex, T arg) |
Performs a bitwise AND operation on an std::atomic variable with the specified value under the protection of a mutex. | |
template<typename T > | |
void | ldvc_atomic_or (std::atomic< T > &var, std::mutex &mutex, T arg) |
Performs a bitwise OR operation on an std::atomic variable with the specified value under the protection of a mutex. | |
template<typename T > | |
void | ldvc_atomic_xor (std::atomic< T > &var, std::mutex &mutex, T arg) |
Performs a bitwise XOR operation on an std::atomic variable with the specified value under the protection of a mutex. | |
template<typename T > | |
T | ldvc_atomic_exchange (std::atomic< T > &var, std::mutex &mutex, T new_value) |
Atomically exchanges the value of an std::atomic variable with a new value under the protection of a mutex. | |
template<typename T > | |
T | ldvc_atomic_load (const std::atomic< T > &var, std::mutex &mutex) |
Atomically loads the value of an std::atomic variable under the protection of a mutex. | |
template<typename T > | |
void | ldvc_atomic_store (std::atomic< T > &var, std::mutex &mutex, T new_value) |
Atomically stores a new value in an std::atomic variable under the protection of a mutex. | |
Provides utilities for atomic operations with mutex protection in C++.
This header file defines functions for performing atomic operations on std::atomic
variables with the protection of a mutex. These functions ensure thread safety while allowing atomicity for operations such as incrementing, decrementing, bitwise operations, exchange, load, and store.
Definition in file ldvc_atomic.hpp.
void ldvc_atomic_and | ( | std::atomic< T > & | var, |
std::mutex & | mutex, | ||
T | arg ) |
Performs a bitwise AND operation on an std::atomic
variable with the specified value under the protection of a mutex.
This function performs a bitwise AND operation on an std::atomic
variable var
with the specified value arg
under the protection of the provided mutex mutex
.
T | The type of the atomic variable. |
var | The atomic variable to be bitwise ANDed. |
mutex | The mutex for thread safety. |
arg | The value for the bitwise AND operation. |
Definition at line 151 of file ldvc_atomic.hpp.
void ldvc_atomic_create | ( | std::atomic< T > & | var, |
std::mutex & | mutex, | ||
T | value ) |
Initializes an std::atomic
variable with the specified initial value under the protection of a mutex.
This function initializes an std::atomic
variable var
with the specified initial value value
under the protection of the provided mutex mutex
.
T | The type of the atomic variable. |
var | The atomic variable to be initialized. |
mutex | The mutex for thread safety. |
value | The initial value for the atomic variable. |
Definition at line 59 of file ldvc_atomic.hpp.
void ldvc_atomic_dec | ( | std::atomic< T > & | var, |
std::mutex & | mutex, | ||
T | arg ) |
Atomically decrements the value of an std::atomic
variable by the specified amount under the protection of a mutex.
This function atomically decrements the value of an std::atomic
variable var
by the specified amount arg
under the protection of the provided mutex mutex
.
T | The type of the atomic variable. |
var | The atomic variable to be decremented. |
mutex | The mutex for thread safety. |
arg | The amount by which to decrement the atomic variable. |
Definition at line 127 of file ldvc_atomic.hpp.
void ldvc_atomic_delete | ( | std::atomic< T > & | var, |
std::mutex & | mutex ) |
Resets an std::atomic
variable to its default-constructed value under the protection of a mutex.
This function resets an std::atomic
variable var
to its default-constructed value under the protection of the provided mutex mutex
.
T | The type of the atomic variable. |
var | The atomic variable to be reset. |
mutex | The mutex for thread safety. |
Definition at line 80 of file ldvc_atomic.hpp.
T ldvc_atomic_exchange | ( | std::atomic< T > & | var, |
std::mutex & | mutex, | ||
T | new_value ) |
Atomically exchanges the value of an std::atomic
variable with a new value under the protection of a mutex.
This function atomically exchanges the value of an std::atomic
variable var
with the specified new value new_value
under the protection of the provided mutex mutex
. It returns the previous value of the atomic variable.
T | The type of the atomic variable. |
var | The atomic variable to be exchanged. |
mutex | The mutex for thread safety. |
new_value | The new value to be stored in the atomic variable. |
Definition at line 223 of file ldvc_atomic.hpp.
void ldvc_atomic_inc | ( | std::atomic< T > & | var, |
std::mutex & | mutex, | ||
T | arg ) |
Atomically increments the value of an std::atomic
variable by the specified amount under the protection of a mutex.
This function atomically increments the value of an std::atomic
variable var
by the specified amount arg
under the protection of the provided mutex mutex
.
T | The type of the atomic variable. |
var | The atomic variable to be incremented. |
mutex | The mutex for thread safety. |
arg | The amount by which to increment the atomic variable. |
Definition at line 103 of file ldvc_atomic.hpp.
T ldvc_atomic_load | ( | const std::atomic< T > & | var, |
std::mutex & | mutex ) |
Atomically loads the value of an std::atomic
variable under the protection of a mutex.
This function atomically loads the value of an std::atomic
variable var
under the protection of the provided mutex mutex
.
T | The type of the atomic variable. |
var | The atomic variable to be loaded. |
mutex | The mutex for thread safety. |
Definition at line 245 of file ldvc_atomic.hpp.
void ldvc_atomic_or | ( | std::atomic< T > & | var, |
std::mutex & | mutex, | ||
T | arg ) |
Performs a bitwise OR operation on an std::atomic
variable with the specified value under the protection of a mutex.
This function performs a bitwise OR operation on an std::atomic
variable var
with the specified value arg
under the protection of the provided mutex mutex
.
T | The type of the atomic variable. |
var | The atomic variable to be bitwise ORed. |
mutex | The mutex for thread safety. |
arg | The value for the bitwise OR operation. |
Definition at line 174 of file ldvc_atomic.hpp.
void ldvc_atomic_store | ( | std::atomic< T > & | var, |
std::mutex & | mutex, | ||
T | new_value ) |
Atomically stores a new value in an std::atomic
variable under the protection of a mutex.
This function atomically stores the specified new value new_value
in an std::atomic
variable var
under the protection of the provided mutex mutex
.
T | The type of the atomic variable. |
var | The atomic variable to be stored. |
mutex | The mutex for thread safety. |
new_value | The new value to be stored in the atomic variable. |
Definition at line 268 of file ldvc_atomic.hpp.
void ldvc_atomic_xor | ( | std::atomic< T > & | var, |
std::mutex & | mutex, | ||
T | arg ) |
Performs a bitwise XOR operation on an std::atomic
variable with the specified value under the protection of a mutex.
This function performs a bitwise XOR operation on an std::atomic
variable var
with the specified value arg
under the protection of the provided mutex mutex
.
T | The type of the atomic variable. |
var | The atomic variable to be bitwise XORed. |
mutex | The mutex for thread safety. |
arg | The value for the bitwise XOR operation. |
Definition at line 198 of file ldvc_atomic.hpp.