20#ifndef REALM_REPL_HEAP_H
21#define REALM_REPL_HEAP_H
35 void init(
size_t _chunk_size,
size_t _max_chunks);
39 virtual void *
alloc_obj(
size_t bytes,
size_t alignment);
66 static const uint64_t
STATE_FREE = 0x0102030405060708ULL;
Definition repl_heap.h:50
virtual ~Listener()
Definition repl_heap.h:52
virtual void chunk_destroyed(void *base, size_t bytes)
Definition repl_heap.h:55
virtual void chunk_created(void *base, size_t bytes)
Definition repl_heap.h:54
virtual void data_updated(void *base, size_t bytes)
Definition repl_heap.h:57
Definition repl_heap.h:30
std::map< uint64_t, uint64_t > free_by_start
Definition repl_heap.h:77
Mutex mutex
Definition repl_heap.h:72
size_t peak_bytes
Definition repl_heap.h:75
size_t chunk_size
Definition repl_heap.h:74
void add_listener(Listener *listener)
uintptr_t base
Definition repl_heap.h:73
std::set< Listener * > listeners
Definition repl_heap.h:79
void commit_writes(void *start, size_t bytes)
void init(size_t _chunk_size, size_t _max_chunks)
void remove_listener(Listener *listener)
size_t max_chunks
Definition repl_heap.h:74
virtual void * alloc_obj(size_t bytes, size_t alignment)
size_t cur_bytes
Definition repl_heap.h:75
virtual void free_obj(void *ptr)
size_t cur_chunks
Definition repl_heap.h:74
std::multimap< uint64_t, uint64_t > free_by_size
Definition repl_heap.h:78
Definition activemsg.h:38