Go to the documentation of this file.
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:25
void Put(FifoCell *cl)
Definition: flcontainers.h:109
TypedFifo< T > reuse
Definition: flcontainers.h:164
TypedLifo< T > reuse
Definition: flcontainers.h:98
T * Pop()
Definition: flcontainers.h:79
LifoCell * Pop()
Definition: flcontainers.h:30
Definition: flcontainers.h:116
void Free(T *p)
Definition: flcontainers.h:92
PooledLifo()
Definition: flcontainers.h:76
void Put(T *c)
Definition: flcontainers.h:120
Definition: flcontainers.h:126
Definition: flcontainers.h:44
T * Get()
Definition: flcontainers.h:121
T * Pop()
Definition: flcontainers.h:40
Definition: flcontainers.h:53
void Free(T *p)
Definition: flcontainers.h:162
T value
Definition: flcontainers.h:131
Definition: flcontainers.h:135
Definition: flcontainers.h:155
void Push(LifoCell *cell)
Definition: flcontainers.h:29
size_t sz
Definition: flcontainers.h:99
FifoCell * Get()
Definition: flcontainers.h:110
Definition: flcontainers.h:23
bool Avail() const
Definition: flcontainers.h:111
~PooledFifo()
Definition: flcontainers.h:159
Definition: flcontainers.h:103
size_t sz
Definition: flcontainers.h:165
T value
Definition: flcontainers.h:49
void Push(T v)
Definition: flcontainers.h:57
void Put(T v)
Definition: flcontainers.h:139
Definition: flcontainers.h:72
void Push(T *c)
Definition: flcontainers.h:78
Definition: flcontainers.h:105
void Push(T *c)
Definition: flcontainers.h:39
ValueLifoCell(T v)
Definition: flcontainers.h:48
T Get()
Definition: flcontainers.h:144
Definition: flcontainers.h:35
T * New()
Definition: flcontainers.h:161
bool Avail() const
Definition: flcontainers.h:31
size_t resz
Definition: flcontainers.h:99
T Pop()
Definition: flcontainers.h:62
size_t resz
Definition: flcontainers.h:165
ValueFifoCell(T v)
Definition: flcontainers.h:130
T * New()
Definition: flcontainers.h:81
Try to find out the platform.