#include <lockless_queue.h>
Classes | |
struct | Node |
Public Member Functions | |
LocklessQueue () | |
std::unique_ptr< T > | Pop () |
void | Push (std::unique_ptr< T > t) |
~LocklessQueue () | |
Private Member Functions | |
void | FreeNodes (Node *node) |
Node * | PopNodeFromFreeList () |
void | PushNodeToList (std::atomic< Node * > *list_head, Node *node) |
void | SwapLists () |
Private Attributes | |
Node * | data_list_head_ |
Node * | data_list_tail_ |
std::atomic< Node * > | free_list_head_ |
std::atomic< Node * > | incoming_data_list_head_ |
Definition at line 35 of file lockless_queue.h.
cartographer::common::LocklessQueue< T >::LocklessQueue | ( | ) | [inline] |
Definition at line 37 of file lockless_queue.h.
cartographer::common::LocklessQueue< T >::~LocklessQueue | ( | ) | [inline] |
Definition at line 44 of file lockless_queue.h.
void cartographer::common::LocklessQueue< T >::FreeNodes | ( | Node * | node | ) | [inline, private] |
Definition at line 88 of file lockless_queue.h.
std::unique_ptr<T> cartographer::common::LocklessQueue< T >::Pop | ( | ) | [inline] |
Definition at line 60 of file lockless_queue.h.
Node* cartographer::common::LocklessQueue< T >::PopNodeFromFreeList | ( | ) | [inline, private] |
Definition at line 111 of file lockless_queue.h.
void cartographer::common::LocklessQueue< T >::Push | ( | std::unique_ptr< T > | t | ) | [inline] |
Definition at line 51 of file lockless_queue.h.
void cartographer::common::LocklessQueue< T >::PushNodeToList | ( | std::atomic< Node * > * | list_head, |
Node * | node | ||
) | [inline, private] |
Definition at line 97 of file lockless_queue.h.
void cartographer::common::LocklessQueue< T >::SwapLists | ( | ) | [inline, private] |
Definition at line 128 of file lockless_queue.h.
Node* cartographer::common::LocklessQueue< T >::data_list_head_ [private] |
Definition at line 165 of file lockless_queue.h.
Node* cartographer::common::LocklessQueue< T >::data_list_tail_ [private] |
Definition at line 168 of file lockless_queue.h.
std::atomic<Node*> cartographer::common::LocklessQueue< T >::free_list_head_ [private] |
Definition at line 159 of file lockless_queue.h.
std::atomic<Node*> cartographer::common::LocklessQueue< T >::incoming_data_list_head_ [private] |
Definition at line 162 of file lockless_queue.h.