43#ifndef LASS_GUARDIAN_OF_INCLUSION_STDE_LOCK_FREE_STACK_H
44#define LASS_GUARDIAN_OF_INCLUSION_STDE_LOCK_FREE_STACK_H
57 typename FixedAllocator = util::AllocatorFixed<util::AllocatorMalloc>
59class lock_free_stack:
private util::AllocatorConcurrentFreeList<FixedAllocator>
68 void push(
const value_type& x);
69 void push(value_type&& x);
70 template <
class... Args>
void emplace(Args&&... args);
72 bool pop(value_type& x);
73 bool pop_swap(value_type& x);
83 typedef util::TaggedPtr<node_t> pointer_t;
85 lock_free_stack(
const lock_free_stack&);
86 lock_free_stack& operator=(
const lock_free_stack&);
89 void free_node(node_t* node);
90 void push_node(node_t* node);
93 std::atomic<pointer_t> top_;
lass extensions to the standard library
Library for Assembled Shared Sources.