This PR introduces an abstract ConcurrencyQueue within the concurrency common library with a deque structure. This deque supports push, dequeue and dequeueAll operations with implicit mutual exclusion. The initial concrete implementations provided are:
AtomicConcurrencyQueue, which uses atomic operations to ensure thread-safe operations;
ConditionalVariableConcurrencyQueue, which uses a conditional variable to ensure thread-safe operations;
MutexConcurrencyQueue, which uses a mutex to ensure thread-safe operations.
Summary
This PR introduces an abstract
ConcurrencyQueue
within the concurrency common library with a deque structure. This deque supportspush
,dequeue
anddequeueAll
operations with implicit mutual exclusion. The initial concrete implementations provided are:AtomicConcurrencyQueue
, which uses atomic operations to ensure thread-safe operations;ConditionalVariableConcurrencyQueue
, which uses a conditional variable to ensure thread-safe operations;MutexConcurrencyQueue
, which uses a mutex to ensure thread-safe operations.