cpp-toolbox  0.0.1
A toolbox library for C++
Loading...
Searching...
No Matches
toolbox::container::lock_free_queue_t< T > Class Template Reference

#include <lock_free_queue.hpp>

Public Member Functions

 lock_free_queue_t ()
 构造无锁队列 (Constructs the lock-free queue)
 
 ~lock_free_queue_t ()
 销毁无锁队列 (Destroys the lock-free queue)
 
void enqueue (T value)
 
bool try_dequeue (T &result)
 
std::optional< T > try_dequeue ()
 

Static Public Member Functions

static void cleanup_this_thread_retired_nodes ()
 

Constructor & Destructor Documentation

◆ lock_free_queue_t()

template<typename T >
toolbox::container::lock_free_queue_t< T >::lock_free_queue_t ( )
inline

构造无锁队列 (Constructs the lock-free queue)

用一个哑节点初始化队列 (Initializes the queue with a dummy node)

◆ ~lock_free_queue_t()

template<typename T >
toolbox::container::lock_free_queue_t< T >::~lock_free_queue_t ( )
inline

销毁无锁队列 (Destroys the lock-free queue)

删除剩余节点。假设销毁期间无并发访问。尝试清理调用线程退休的节点。 (Deletes remaining nodes. Assumes no concurrent access during destruction. Attempts to clean up nodes retired by the calling thread.)

Warning
跨所有线程的退休节点的正确分布式清理很复杂,这里没有完全处理。 如果其他线程不干净退出或不调用清理例程,可能会泄露内存。 (Proper distributed cleanup of retired nodes across all threads is complex and not fully handled here. May leak memory if other threads exit uncleanly or don't call cleanup routines.)

Member Function Documentation

◆ cleanup_this_thread_retired_nodes()

template<typename T >
static void toolbox::container::lock_free_queue_t< T >::cleanup_this_thread_retired_nodes ( )
inlinestatic

◆ enqueue()

template<typename T >
void toolbox::container::lock_free_queue_t< T >::enqueue ( value)
inline

◆ try_dequeue() [1/2]

template<typename T >
std::optional< T > toolbox::container::lock_free_queue_t< T >::try_dequeue ( )
inline

◆ try_dequeue() [2/2]

template<typename T >
bool toolbox::container::lock_free_queue_t< T >::try_dequeue ( T &  result)
inline

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