21 #ifndef ELM_ALLOC_BLOCK_ALLOCATOR_WITH_GC
22 #define ELM_ALLOC_BLOCK_ALLOCATOR_WITH_GC
24 #include <elm/alloc/DefaultAllocator.h>
25 #include <elm/data/Vector.h>
26 #include <elm/util/BitVector.h>
27 #include <elm/util/Flags.h>
39 inline bool isSync() {
return flags(SYNC); }
52 void free(
void *block);
58 virtual void endGC(
void);
Definition: BlockAllocatorWithGC.h:32
int freeCount(void) const
Definition: BlockAllocatorWithGC.h:46
virtual void destroy(void *p)
Definition: alloc_BlockAllocatorWithGC.cpp:236
virtual void beginGC(void)
Definition: alloc_BlockAllocatorWithGC.cpp:218
int totalCount(void) const
Definition: alloc_BlockAllocatorWithGC.cpp:244
AbstractBlockAllocatorWithGC(t::size block_size, t::size chunk_size=1<< 20)
Definition: alloc_BlockAllocatorWithGC.cpp:37
void setSync()
Definition: BlockAllocatorWithGC.h:40
virtual void collect(void)=0
void collectGarbage(void)
Definition: alloc_BlockAllocatorWithGC.cpp:124
virtual void endGC(void)
Definition: alloc_BlockAllocatorWithGC.cpp:227
void * allocate(void)
Definition: alloc_BlockAllocatorWithGC.cpp:69
int usedCount(void) const
Definition: BlockAllocatorWithGC.h:48
virtual ~AbstractBlockAllocatorWithGC(void)
Definition: alloc_BlockAllocatorWithGC.cpp:48
t::size chunkSize(void) const
Definition: BlockAllocatorWithGC.h:45
struct elm::AbstractBlockAllocatorWithGC::free_t free_t
free_t * free_list
Definition: BlockAllocatorWithGC.h:62
void free(void *block)
Definition: alloc_BlockAllocatorWithGC.cpp:117
t::size blockSize(void) const
Definition: BlockAllocatorWithGC.h:44
void setAsync()
Definition: BlockAllocatorWithGC.h:41
bool isSync()
Definition: BlockAllocatorWithGC.h:39
int free_cnt
Definition: BlockAllocatorWithGC.h:63
bool needsCollect() const
Definition: BlockAllocatorWithGC.h:38
bool mark(void *ptr)
Definition: alloc_BlockAllocatorWithGC.cpp:191
Definition: BitVector.h:31
Definition: BlockAllocatorWithGC.h:78
virtual void destroy(T *p)
Definition: BlockAllocatorWithGC.h:82
BlockAllocatorWithGC(t::size chunk_size=1<< 20)
Definition: BlockAllocatorWithGC.h:80
void destroy(void *p) override
Definition: BlockAllocatorWithGC.h:83
T * allocate(void)
Definition: BlockAllocatorWithGC.h:81
bool mark(T *b)
Definition: BlockAllocatorWithGC.h:86
void clear(int i)
Definition: Flags.h:34
void set(int i)
Definition: Flags.h:33
Printable< T, M > p(const T &data, const M &man)
Definition: Output.h:302
unsigned char uint8
Definition: arch.h:27
unsigned int uint32
Definition: arch.h:31
uint64 size
Definition: arch.h:35
Definition: BlockAllocatorWithGC.h:61
free_t * next
Definition: BlockAllocatorWithGC.h:61