13 #ifndef __FLCONTAINERS_H
14 #define __FLCONTAINERS_H
18 #include "lockfree/stack.hpp"
19 #include "lockfree/fifo.hpp"
23 class LifoCell:
public lockfree::stack_node {};
26 :
public lockfree::intrusive_stack<LifoCell>
31 inline bool Avail()
const {
return !this->empty(); }
71 template <
typename T,
int M = 2,
int O = 1>
106 :
public lockfree::intrusive_fifo<FifoCell>
111 inline bool Avail()
const {
return !this->empty(); }
115 template <
typename T>
125 template <
typename T>
134 template <
typename T>
154 template <
typename T,
int M = 2,
int O = 1>
161 inline T *
New() { T *n =
reuse.Get();
return n?n:
new T; }
Definition: flcontainers.h:103
Definition: flcontainers.h:107
FifoCell * Get()
Definition: flcontainers.h:110
void Put(FifoCell *cl)
Definition: flcontainers.h:109
bool Avail() const
Definition: flcontainers.h:111
Definition: flcontainers.h:23
Definition: flcontainers.h:27
bool Avail() const
Definition: flcontainers.h:31
LifoCell * Pop()
Definition: flcontainers.h:30
void Push(LifoCell *cell)
Definition: flcontainers.h:29
Definition: flcontainers.h:157
T * New()
Definition: flcontainers.h:161
~PooledFifo()
Definition: flcontainers.h:159
void Free(T *p)
Definition: flcontainers.h:162
size_t resz
Definition: flcontainers.h:165
TypedFifo< T > reuse
Definition: flcontainers.h:164
size_t sz
Definition: flcontainers.h:165
Definition: flcontainers.h:74
size_t sz
Definition: flcontainers.h:99
T * Pop()
Definition: flcontainers.h:79
void Free(T *p)
Definition: flcontainers.h:92
size_t resz
Definition: flcontainers.h:99
PooledLifo()
Definition: flcontainers.h:76
TypedLifo< T > reuse
Definition: flcontainers.h:98
void Push(T *c)
Definition: flcontainers.h:78
T * New()
Definition: flcontainers.h:81
Definition: flcontainers.h:118
void Put(T *c)
Definition: flcontainers.h:120
T * Get()
Definition: flcontainers.h:121
Definition: flcontainers.h:37
void Push(T *c)
Definition: flcontainers.h:39
T * Pop()
Definition: flcontainers.h:40
Definition: flcontainers.h:128
ValueFifoCell(T v)
Definition: flcontainers.h:130
T value
Definition: flcontainers.h:131
Definition: flcontainers.h:137
void Put(T v)
Definition: flcontainers.h:139
T Get()
Definition: flcontainers.h:144
Definition: flcontainers.h:46
ValueLifoCell(T v)
Definition: flcontainers.h:48
T value
Definition: flcontainers.h:49
Definition: flcontainers.h:55
T Pop()
Definition: flcontainers.h:62
void Push(T v)
Definition: flcontainers.h:57
Try to find out the platform.