Skip to content

iox::concurrent🔗

Classes🔗

Name
class iox::concurrent::ActiveObject
class iox::concurrent::Buffer
class iox::concurrent::CyclicIndex
index structure that can contain logical values 0, ..., CycleLength-1 but also stores an internal cycle counter to be used in compare_exchange
class iox::concurrent::FiFo
single pusher single pop'er thread safe fifo
class iox::concurrent::IndexQueue
lockfree queue capable of storing indices 0,1,... Capacity-1
class iox::concurrent::LockFreeQueue
implements a lock free queue (i.e. container with FIFO order) of elements of type T with a fixed Capacity
class iox::concurrent::LoFFLi
class iox::concurrent::PeriodicTask
This class periodically executes a callable specified by the template parameter. This can be a struct with a operator()() overload, a [cxx::function_ref]()<void()> or std::fuction<void()>.
struct iox::concurrent::PeriodicTaskAutoStart_t
This is a helper struct to make the immediate start of the task in the PeriodicTask ctor obvious to the user.
struct iox::concurrent::PeriodicTaskManualStart_t
This is a helper struct to make the manual start of the task with the start method obvious to the user.
struct iox::concurrent::QueueAdapter
struct iox::concurrent::QueueAdapter< T, Capacity, LockFreeQueue >
struct iox::concurrent::QueueAdapter< T, Capacity, ResizeableLockFreeQueue >
class iox::concurrent::ResizeableLockFreeQueue
implements a lock free queue (i.e. container with FIFO order) of elements of type T with a maximum capacity MaxCapacity. The capacity can be defined to be anything between 0 and MaxCapacity at construction time or later at runtime using setCapacity. This is even possible while concurrent push and pop operations are executed, i.e. the queue does not have to be empty. Only one thread will succeed setting its desired capacity if there are more threads trying to change the capacity at the same time (it is unpredictable which thread).
class iox::concurrent::SoFi
Thread safe producer and consumer queue with a safe overflowing behavior. SoFi is designed in a FIFO Manner but prevents data loss when pushing into a full SoFi. When SoFi is full and a Sender tries to push, the data at the current read position will be returned. SoFi is a Thread safe without using locks. When the buffer is filled, new data is written starting at the beginning of the buffer and overwriting the old.The SoFi is especially designed to provide fixed capacity storage. When its capacity is exhausted, newly inserted elements will cause elements either at the beginning to be overwritten.The SoFi only allocates memory when created , capacity can be is adjusted explicitly.
class iox::concurrent::TACO
TACO is an acronym for Thread Aware exChange Ownership. Exchanging data between thread needs some synchonization mechanism. This can be done with a mutex or atomics. If the data structure is larger than 64 bit or if more than one value need to be accessed in a synchronized manner, a mutex would be the only option. The TACO is a wait-free alternative to the mutex. Data can be exchanged between threads. The TACO is like a SoFi with one element, but with the possibility to read/write from multiple threads.
class iox::concurrent::TriggerQueue
TriggerQueue is behaves exactly like a normal queue (fifo) except that this queue is threadsafe and offers a blocking push which blocks the the caller until the queue has space for at least one element which can be pushed.

Types🔗

Name
enum TACOMode { AccecptDataFromSameContext, DenyDataFromSameContext }
Defines how the TACO works with data reads from the same context.

Functions🔗

Name
template \<typename T ,typename MutexType ,typename... Targs>
smart_lock< T, MutexType >
make_smart_lock(Targs &&... args)

Attributes🔗

Name
constexpr PeriodicTaskAutoStart_t PeriodicTaskAutoStart
constexpr PeriodicTaskManualStart_t PeriodicTaskManualStart

Types Documentation🔗

enum TACOMode🔗

Enumerator Value Description
AccecptDataFromSameContext Accept data reads from the same context as data write.
DenyDataFromSameContext Deny data reads from the same context as data write.

Defines how the TACO works with data reads from the same context.

Functions Documentation🔗

function make_smart_lock🔗

template <typename T ,
typename MutexType ,
typename... Targs>
smart_lock< T, MutexType > make_smart_lock(
    Targs &&... args
)

Attributes Documentation🔗

variable PeriodicTaskAutoStart🔗

static constexpr PeriodicTaskAutoStart_t PeriodicTaskAutoStart;

variable PeriodicTaskManualStart🔗

static constexpr PeriodicTaskManualStart_t PeriodicTaskManualStart;

Updated on 17 June 2021 at 11:15:26 CEST