|
xentara-utils v2.1
The Xentara Utility Library
|
Lock-free algorithms. More...
Namespaces | |
| namespace | deprecated |
Classes | |
| class | ConditionVariable |
| A notification that can be sent to one or more threads. More... | |
| class | LockFreeTraversableMap |
| A map that can be traversed without locking. More... | |
| struct | NotifyOneTag |
| Type used to select notify-one overloads of functions that send atomic notifications. More... | |
| class | Pool |
| A lock-free pool that manages a number of preallocator memory locations for objects. More... | |
| class | Queue |
| A lock free queue. More... | |
| class | SingleElementBuffer |
| A lock-free single element buffer. More... | |
| class | WaitableState |
| A simple state that can be waited for without locking. More... | |
Typedefs | |
| template<typename Type > | |
| using | Atomic = __opaque_atomic_lock_free_type |
| An atomic that is always guaranteed to be lock free. | |
| template<typename Type > | |
| using | PreferLockFreeAtomic = __opaque_atomic_lock_free_type |
| An atomic that is lock free if supported. | |
Variables | |
| constexpr NotifyOneTag | kNotifyOne |
| A marker used to select notify-one overloads of functions that send atomic notifications. | |
Lock-free algorithms.
Contains lock-free data types for use in real-time applications.
| using xentara::utils::lockFree::Atomic = typedef __opaque_atomic_lock_free_type |
An atomic that is always guaranteed to be lock free.
For types for which std::atomic is lock free, this is a type alias for std::atomic<Type>. On 64-bit platforms that natively do not support lock-free 128-bit atomics, this alias provides access to a custom implementation of 128-bit lock-free atomics.
If a lock-free atomic is not available for Type, this type alias is not available. You can use PreferLockFreeAtomic to select a lock-free type if one is available, but fall back to a locking std::atomic<Type> if not.
#include <xentara/utils/lockFree/Atomic.hpp> | using xentara::utils::lockFree::PreferLockFreeAtomic = typedef __opaque_atomic_lock_free_type |
An atomic that is lock free if supported.
This type alias is the same as Atomic<Type> if a lock-free atomic is available. Otherwise, it falls back to std::atomic<Type>. Use this type alias instead of Atomic if you want a lock-free type if possible, but do not necessarily need one.
#include <xentara/utils/lockFree/Atomic.hpp>
|
constexpr |
A marker used to select notify-one overloads of functions that send atomic notifications.
This marker is used to select overloads of notification functions that wake up at least one waiting thread (if there are any) rather than waking up all waiting threads.