SYMBOL INDEX (321 symbols across 12 files) FILE: bench.cpp function pc_bench_worker (line 42) | void pc_bench_worker( int pro, int con, char* (*do_alloc)(int s), void (... function pc_bench (line 99) | void pc_bench(int n, char* (*do_alloc)(int s), void (*do_free)(char*) ) function pc_bench_st (line 183) | void pc_bench_st(char* (*do_alloc)(int s), void (*do_free)(char*) ) function do_malloc_free (line 200) | void do_malloc_free(char* c) function do_fc_free (line 212) | void do_fc_free(char* c) function main (line 220) | int main( int argc, char** argv ) FILE: bit_index.cpp function main (line 4) | int main( int argc, char** argv ) FILE: bit_index.hpp class bit_index (line 9) | class bit_index type size_enum (line 194) | enum size_enum { method dump (line 203) | void dump( int depth = 0 ) method size (line 217) | uint64_t size()const { return index_size; } method first_set_bit (line 218) | uint64_t first_set_bit()const method get (line 228) | bool get( uint64_t bit )const method set (line 236) | void set( uint64_t bit ) method clear (line 245) | bool clear( uint64_t bit ) method set_all (line 255) | void set_all() method clear_all (line 264) | void clear_all() method count (line 273) | uint64_t count()const type iterator (line 294) | struct iterator method end (line 299) | bool end()const { return sub_idx >= sub_index_count; } method bit (line 300) | int64_t bit()const { return pos; } method set (line 301) | void set() method clear (line 306) | bool clear() method iterator (line 318) | iterator& next_set_bit() method iterator (line 340) | iterator& operator++() method iterator (line 356) | iterator& operator++(int) { return this->operator++(); } method iterator (line 357) | iterator operator+(uint64_t delta) { return iterator( bit_idx, pos +... method iterator (line 360) | iterator( bit_index* self=nullptr, int64_t bit=Size) method iterator (line 365) | iterator& operator=(const iterator& i ) method iterator (line 381) | iterator begin() { return iterator( this, 0 ); } method end (line 299) | bool end()const { return sub_idx >= sub_index_count; } method bit (line 300) | int64_t bit()const { return pos; } method set (line 301) | void set() method clear (line 306) | bool clear() method iterator (line 318) | iterator& next_set_bit() method iterator (line 340) | iterator& operator++() method iterator (line 356) | iterator& operator++(int) { return this->operator++(); } method iterator (line 357) | iterator operator+(uint64_t delta) { return iterator( bit_idx, pos +... method iterator (line 360) | iterator( bit_index* self=nullptr, int64_t bit=Size) method iterator (line 365) | iterator& operator=(const iterator& i ) method iterator (line 382) | iterator end() { return iterator( this, Size ); } method end (line 299) | bool end()const { return sub_idx >= sub_index_count; } method bit (line 300) | int64_t bit()const { return pos; } method set (line 301) | void set() method clear (line 306) | bool clear() method iterator (line 318) | iterator& next_set_bit() method iterator (line 340) | iterator& operator++() method iterator (line 356) | iterator& operator++(int) { return this->operator++(); } method iterator (line 357) | iterator operator+(uint64_t delta) { return iterator( bit_idx, pos +... method iterator (line 360) | iterator( bit_index* self=nullptr, int64_t bit=Size) method iterator (line 365) | iterator& operator=(const iterator& i ) method iterator (line 383) | iterator at(int64_t p) { return iterator( this, p ); } method end (line 299) | bool end()const { return sub_idx >= sub_index_count; } method bit (line 300) | int64_t bit()const { return pos; } method set (line 301) | void set() method clear (line 306) | bool clear() method iterator (line 318) | iterator& next_set_bit() method iterator (line 340) | iterator& operator++() method iterator (line 356) | iterator& operator++(int) { return this->operator++(); } method iterator (line 357) | iterator operator+(uint64_t delta) { return iterator( bit_idx, pos +... method iterator (line 360) | iterator( bit_index* self=nullptr, int64_t bit=Size) method iterator (line 365) | iterator& operator=(const iterator& i ) type log64 (line 12) | struct log64 type log64<64> (line 14) | struct log64<64> { enum { value = 1 }; } type log64<0> (line 16) | struct log64<0> { enum { value = 0 }; } type log64 (line 18) | struct log64 { enum { value = 1 + log64::value }; } type pow64 (line 22) | struct pow64 type ev (line 28) | enum ev{ value = pow64::value*64ll } type pow64<0> (line 25) | struct pow64<0> { enum ev{ value = 1 }; } type ev (line 25) | enum ev{ value = 1 } type pow64 (line 28) | struct pow64 { enum ev{ value = pow64::value*64ll }; } type ev (line 28) | enum ev{ value = pow64::value*64ll } class bit_index<1> (line 33) | class bit_index<1> type size_enum (line 36) | enum size_enum { index_size = 1 } method set (line 37) | void set( uint64_t pos = 0) method get (line 42) | bool get( uint32_t pos = 0)const { return bit; } method clear (line 45) | bool clear( uint64_t pos = 0) method clear_all (line 50) | void clear_all() { clear(); } method set_all (line 51) | void set_all() { set(); } method first_set_bit (line 53) | uint64_t first_set_bit()const { return !bit; } method size (line 54) | uint64_t size()const { return 1; } type iterator (line 57) | struct iterator method end (line 61) | bool end()const { return _bit == 1; } method bit (line 62) | int64_t bit()const { return _bit; } method set (line 63) | void set() { _self->set(_bit); } method clear (line 64) | bool clear() { return _self->clear(_bit); } method iterator (line 67) | iterator& next_set_bit() method iterator (line 73) | iterator( bit_index* s=nullptr, uint8_t b = 64 ):_self(s),_bit(b){} method iterator (line 79) | iterator at( uint64_t p ) { return iterator(this, p); } method end (line 61) | bool end()const { return _bit == 1; } method bit (line 62) | int64_t bit()const { return _bit; } method set (line 63) | void set() { _self->set(_bit); } method clear (line 64) | bool clear() { return _self->clear(_bit); } method iterator (line 67) | iterator& next_set_bit() method iterator (line 73) | iterator( bit_index* s=nullptr, uint8_t b = 64 ):_self(s),_bit(b){} class bit_index<0> (line 86) | class bit_index<0> : public bit_index<1>{} class bit_index<64> (line 89) | class bit_index<64> type size_enum (line 92) | enum size_enum { index_size = 64 } method bit_index (line 93) | bit_index(uint64_t s = 0):_bits(s){} method first_set_bit (line 98) | uint64_t first_set_bit()const { method dump (line 102) | void dump( int depth ) method get (line 117) | bool get( uint64_t pos )const { return _bits & (1ll<<(63-pos)); } method set (line 118) | void set( uint64_t pos ) method clear (line 123) | bool clear( uint64_t pos ) method size (line 132) | uint64_t size()const { return 64; } method count (line 133) | uint64_t count()const { return __builtin_popcountll(_bits); } method set_all (line 135) | void set_all() { _bits = -1; } method clear_all (line 136) | void clear_all() { _bits = 0; } type iterator (line 144) | struct iterator method end (line 148) | bool end()const { return _bit == 64; } method bit (line 149) | int64_t bit()const { return _bit; } method set (line 150) | void set() { _self->set(_bit); } method clear (line 151) | bool clear() { return _self->clear(_bit); } method iterator (line 154) | iterator& next_set_bit() method iterator (line 163) | iterator( bit_index* s=nullptr, uint8_t b = 64 ):_self(s),_bit(b){} method iterator (line 170) | iterator begin() { return iterator(this,0); } method end (line 148) | bool end()const { return _bit == 64; } method bit (line 149) | int64_t bit()const { return _bit; } method set (line 150) | void set() { _self->set(_bit); } method clear (line 151) | bool clear() { return _self->clear(_bit); } method iterator (line 154) | iterator& next_set_bit() method iterator (line 163) | iterator( bit_index* s=nullptr, uint8_t b = 64 ):_self(s),_bit(b){} method iterator (line 171) | iterator at(uint8_t i){ return iterator(this,i); } method end (line 148) | bool end()const { return _bit == 64; } method bit (line 149) | int64_t bit()const { return _bit; } method set (line 150) | void set() { _self->set(_bit); } method clear (line 151) | bool clear() { return _self->clear(_bit); } method iterator (line 154) | iterator& next_set_bit() method iterator (line 163) | iterator( bit_index* s=nullptr, uint8_t b = 64 ):_self(s),_bit(b){} method iterator (line 172) | iterator end() { return iterator(this,64); } method end (line 148) | bool end()const { return _bit == 64; } method bit (line 149) | int64_t bit()const { return _bit; } method set (line 150) | void set() { _self->set(_bit); } method clear (line 151) | bool clear() { return _self->clear(_bit); } method iterator (line 154) | iterator& next_set_bit() method iterator (line 163) | iterator( bit_index* s=nullptr, uint8_t b = 64 ):_self(s),_bit(b){} class bit_index (line 189) | class bit_index type size_enum (line 194) | enum size_enum { method dump (line 203) | void dump( int depth = 0 ) method size (line 217) | uint64_t size()const { return index_size; } method first_set_bit (line 218) | uint64_t first_set_bit()const method get (line 228) | bool get( uint64_t bit )const method set (line 236) | void set( uint64_t bit ) method clear (line 245) | bool clear( uint64_t bit ) method set_all (line 255) | void set_all() method clear_all (line 264) | void clear_all() method count (line 273) | uint64_t count()const type iterator (line 294) | struct iterator method end (line 299) | bool end()const { return sub_idx >= sub_index_count; } method bit (line 300) | int64_t bit()const { return pos; } method set (line 301) | void set() method clear (line 306) | bool clear() method iterator (line 318) | iterator& next_set_bit() method iterator (line 340) | iterator& operator++() method iterator (line 356) | iterator& operator++(int) { return this->operator++(); } method iterator (line 357) | iterator operator+(uint64_t delta) { return iterator( bit_idx, pos +... method iterator (line 360) | iterator( bit_index* self=nullptr, int64_t bit=Size) method iterator (line 365) | iterator& operator=(const iterator& i ) method iterator (line 381) | iterator begin() { return iterator( this, 0 ); } method end (line 299) | bool end()const { return sub_idx >= sub_index_count; } method bit (line 300) | int64_t bit()const { return pos; } method set (line 301) | void set() method clear (line 306) | bool clear() method iterator (line 318) | iterator& next_set_bit() method iterator (line 340) | iterator& operator++() method iterator (line 356) | iterator& operator++(int) { return this->operator++(); } method iterator (line 357) | iterator operator+(uint64_t delta) { return iterator( bit_idx, pos +... method iterator (line 360) | iterator( bit_index* self=nullptr, int64_t bit=Size) method iterator (line 365) | iterator& operator=(const iterator& i ) method iterator (line 382) | iterator end() { return iterator( this, Size ); } method end (line 299) | bool end()const { return sub_idx >= sub_index_count; } method bit (line 300) | int64_t bit()const { return pos; } method set (line 301) | void set() method clear (line 306) | bool clear() method iterator (line 318) | iterator& next_set_bit() method iterator (line 340) | iterator& operator++() method iterator (line 356) | iterator& operator++(int) { return this->operator++(); } method iterator (line 357) | iterator operator+(uint64_t delta) { return iterator( bit_idx, pos +... method iterator (line 360) | iterator( bit_index* self=nullptr, int64_t bit=Size) method iterator (line 365) | iterator& operator=(const iterator& i ) method iterator (line 383) | iterator at(int64_t p) { return iterator( this, p ); } method end (line 299) | bool end()const { return sub_idx >= sub_index_count; } method bit (line 300) | int64_t bit()const { return pos; } method set (line 301) | void set() method clear (line 306) | bool clear() method iterator (line 318) | iterator& next_set_bit() method iterator (line 340) | iterator& operator++() method iterator (line 356) | iterator& operator++(int) { return this->operator++(); } method iterator (line 357) | iterator operator+(uint64_t delta) { return iterator( bit_idx, pos +... method iterator (line 360) | iterator( bit_index* self=nullptr, int64_t bit=Size) method iterator (line 365) | iterator& operator=(const iterator& i ) FILE: disruptor.hpp type disruptor (line 10) | namespace disruptor class eof (line 13) | class eof : public std::exception class sequence (line 30) | class sequence method sequence (line 33) | sequence( int64_t v = 0 ):_sequence(v),_alert(0){} method lazy_read (line 35) | int64_t lazy_read()const { return *((volatile int... method aquire (line 37) | int64_t aquire()const { return _sequence.load(... method aquire_pending (line 38) | int64_t aquire_pending()const { return _pending_sequen... method lazy_store (line 39) | void lazy_store( int64_t value ) { _sequence.store(value,... method store (line 40) | void store( int64_t value ) { _sequence.store(value,... method store_pending (line 41) | void store_pending( int64_t value ) { _pending_sequence.stor... method set_eof (line 42) | void set_eof() { _alert = 1; } method set_alert (line 43) | void set_alert() { _alert = -1; } method eof (line 44) | bool eof()const { return _alert == 1; } method alert (line 45) | bool alert()const { return _alert != 0; } method atomic_increment_and_get (line 47) | int64_t atomic_increment_and_get( uint64_t inc ) method increment_and_get (line 52) | int64_t increment_and_get( uint64_t inc ) class event_cursor (line 66) | class event_cursor method event_cursor (line 213) | event_cursor(int64_t b=-1):_name(""),_begin(b),_end(b){} method event_cursor (line 214) | event_cursor(const char* n, int64_t b=0):_name(n),_begin(b),_end(b){} method follows (line 219) | void follows( const event_cursor& s ) { _barrier.follows(s); } method begin (line 222) | int64_t begin()const { return _begin; } method end (line 225) | int64_t end()const { return _end; } method publish (line 229) | void publish( int64_t p ) method lazy_publish (line 235) | void lazy_publish( int64_t p ) method set_eof (line 242) | void set_eof(){ _cursor.set_eof(); } method set_alert (line 248) | void set_alert( std::exception_ptr e ) method sequence (line 264) | const sequence& pos()const { return _cursor; } method sequence (line 265) | sequence& pos(){ return _cursor; } class barrier (line 80) | class barrier class ring_buffer (line 109) | class ring_buffer method EventType (line 118) | const EventType& at( int64_t pos )const method EventType (line 124) | EventType& at( int64_t pos ) method get_buffer_index (line 134) | int64_t get_buffer_index( int64_t pos )const { return pos & (Size-1); } method get_buffer_size (line 135) | int64_t get_buffer_size()const { return Size; } class event_cursor (line 210) | class event_cursor method event_cursor (line 213) | event_cursor(int64_t b=-1):_name(""),_begin(b),_end(b){} method event_cursor (line 214) | event_cursor(const char* n, int64_t b=0):_name(n),_begin(b),_end(b){} method follows (line 219) | void follows( const event_cursor& s ) { _barrier.follows(s); } method begin (line 222) | int64_t begin()const { return _begin; } method end (line 225) | int64_t end()const { return _end; } method publish (line 229) | void publish( int64_t p ) method lazy_publish (line 235) | void lazy_publish( int64_t p ) method set_eof (line 242) | void set_eof(){ _cursor.set_eof(); } method set_alert (line 248) | void set_alert( std::exception_ptr e ) method sequence (line 264) | const sequence& pos()const { return _cursor; } method sequence (line 265) | sequence& pos(){ return _cursor; } class read_cursor (line 283) | class read_cursor : public event_cursor method read_cursor (line 286) | read_cursor(int64_t p=0):event_cursor(p){} method read_cursor (line 287) | read_cursor(const char* n, int64_t p=0):event_cursor(n,p){} method wait_for (line 290) | int64_t wait_for( int64_t pos ) method check_end (line 300) | int64_t check_end() class shared_read_cursor (line 306) | class shared_read_cursor : public read_cursor method shared_read_cursor (line 309) | shared_read_cursor(int64_t p=0):read_cursor(p){} method shared_read_cursor (line 310) | shared_read_cursor(const char* n, int64_t p=0):read_cursor(n,p){} method publish_after (line 316) | void publish_after( int64_t pos, int64_t after_pos ) method is_available (line 331) | bool is_available( int64_t pos ) method claim (line 336) | int64_t claim(int64_t num) class write_cursor (line 354) | class write_cursor : public event_cursor method write_cursor (line 360) | write_cursor(int64_t s) method write_cursor (line 372) | write_cursor(const char* n, int64_t s) method wait_next (line 385) | int64_t wait_next() method wait_for (line 397) | int64_t wait_for( int64_t pos ) method check_end (line 409) | int64_t check_end() class shared_write_cursor (line 459) | class shared_write_cursor : public write_cursor method shared_write_cursor (line 465) | shared_write_cursor(int64_t s) method shared_write_cursor (line 472) | shared_write_cursor(const char* n, int64_t s) method claim (line 486) | int64_t claim( size_t num_slots ) method publish_after (line 499) | void publish_after( int64_t pos, int64_t after_pos ) FILE: fast_rand.cpp function get_cc_time (line 10) | uint64_t get_cc_time () { function rdtsc (line 16) | __inline__ uint64_t rdtsc() { function rdtsc (line 22) | __inline__ uint64_t rdtsc() { function get_cc_time (line 30) | uint64_t get_cc_time () { function ShiftMix (line 42) | inline uint64_t ShiftMix(uint64_t val) { return val ^ (val >> 47); } function fast_rand (line 44) | uint64_t fast_rand() FILE: fc_heap.hpp class block_header (line 17) | class block_header method block_header (line 20) | block_header() method dump (line 31) | void dump( const char* label ) method size (line 37) | uint32_t size()const { return abs(_size); ... method block_header (line 40) | block_header* next()const method block_header (line 45) | block_header* prev()const method block_header (line 56) | block_header* split( uint32_t sz ) method block_header (line 95) | block_header* merge_next() method block_header (line 138) | block_header* merge_prev() method block_header (line 146) | block_header* head() method block_header (line 151) | block_header* tail() method page_size (line 157) | size_t page_size() type queue_state (line 164) | struct queue_state // the block is serving as a linked-list node type flag_enum (line 172) | enum flag_enum method is_idle (line 179) | bool is_idle()const { return _flags & idle; } method is_active (line 180) | bool is_active()const { return _flags & active; } method is_queued (line 181) | bool is_queued()const { return _flags & queued; } method set_active (line 183) | void set_active( bool s ) method set_queued (line 188) | void set_queued( bool s ) method dequeue (line 202) | void dequeue() method set_idle (line 211) | void set_idle( bool s ) method queue_state (line 217) | queue_state& as_queue() type block_stack (line 232) | struct block_stack method block_stack (line 235) | block_stack():_head(nullptr){} method push (line 237) | void push( block_header* h ) method push_all (line 244) | void push_all( block_header* h ) method block_header (line 260) | block_header* pop_all() method block_header (line 267) | block_header* pop() method block_header (line 287) | block_header* head(){ return _head; } class fc_heap (line 300) | class fc_heap method fc_heap (line 306) | fc_heap() method free32 (line 378) | bool free32( char* p ) method free64 (line 392) | bool free64( char* p ) function block_header (line 426) | block_header* fc_heap::alloc( size_t s ) method block_header (line 20) | block_header() method dump (line 31) | void dump( const char* label ) method size (line 37) | uint32_t size()const { return abs(_size); ... method block_header (line 40) | block_header* next()const method block_header (line 45) | block_header* prev()const method block_header (line 56) | block_header* split( uint32_t sz ) method block_header (line 95) | block_header* merge_next() method block_header (line 138) | block_header* merge_prev() method block_header (line 146) | block_header* head() method block_header (line 151) | block_header* tail() method page_size (line 157) | size_t page_size() type queue_state (line 164) | struct queue_state // the block is serving as a linked-list node type flag_enum (line 172) | enum flag_enum method is_idle (line 179) | bool is_idle()const { return _flags & idle; } method is_active (line 180) | bool is_active()const { return _flags & active; } method is_queued (line 181) | bool is_queued()const { return _flags & queued; } method set_active (line 183) | void set_active( bool s ) method set_queued (line 188) | void set_queued( bool s ) method dequeue (line 202) | void dequeue() method set_idle (line 211) | void set_idle( bool s ) method queue_state (line 217) | queue_state& as_queue() class thread_heap (line 519) | class thread_heap method block_header (line 542) | block_header* allocate( size_t s ) method block_header (line 587) | block_header* cache_alloc( int bin, size_t s ) method cache (line 604) | bool cache( block_header* h ) method block_header (line 617) | block_header* pop_cache( int bin ) method free (line 629) | void free( block_header* h ) class garbage_thread (line 521) | class garbage_thread class thread_heap (line 537) | class thread_heap method block_header (line 542) | block_header* allocate( size_t s ) method block_header (line 587) | block_header* cache_alloc( int bin, size_t s ) method cache (line 604) | bool cache( block_header* h ) method block_header (line 617) | block_header* pop_cache( int bin ) method free (line 629) | void free( block_header* h ) function fc_free (line 681) | void fc_free( void* f ) FILE: fc_malloc.cpp function free (line 45) | free( void* f ) FILE: fixed_pool.hpp class basic_page (line 10) | class basic_page method basic_page (line 13) | basic_page():_next_page(nullptr){} class basic_pool (line 26) | class basic_pool type free_node (line 37) | struct free_node class fixed_pool (line 43) | class fixed_pool : public basic_pool class page (line 47) | class page : public basic_page method page (line 50) | page( int64_t claim_pos ) method get_page_pos (line 67) | virtual int get_page_pos() { return _claim_pos; } method get_pool (line 69) | int get_pool() { return LOG2(ItemSize)-4; } method get_available (line 114) | int64_t get_available()const method free (line 119) | void free( void* c ) method gc_free (line 127) | void gc_free( void* c ) method is_claimed (line 143) | bool is_claimed()const method claim (line 148) | bool claim() method release (line 153) | void release() method basic_page (line 182) | virtual basic_page* claim_page() method gc_free (line 213) | virtual bool gc_free( void* v ) method gc_release (line 227) | virtual void gc_release( basic_page_ptr p ) method fixed_pool (line 251) | fixed_pool() class thread_local_heap (line 271) | class thread_local_heap method thread_local_heap (line 336) | thread_local_heap() method thread_local_heap (line 349) | static thread_local_heap& get() method free (line 398) | void free( void* v ) class garbage_collector (line 273) | class garbage_collector method garbage_collector (line 276) | garbage_collector() method garbage_collector (line 288) | static garbage_collector& get() function basic_pool_ptr (line 302) | static basic_pool_ptr get_pool( int p ) class thread_local_heap (line 333) | class thread_local_heap method thread_local_heap (line 336) | thread_local_heap() method thread_local_heap (line 349) | static thread_local_heap& get() method free (line 398) | void free( void* v ) function fp_free (line 506) | void fp_free( void* v ) FILE: hheap.cpp type slot_header (line 39) | struct slot_header type page (line 50) | struct page type slot (line 53) | struct slot method page (line 62) | page(int16_t page_id, int16_t pool_id) method free_estimate (line 88) | int32_t free_estimate() method can_alloc (line 94) | bool can_alloc() method free (line 126) | uint64_t free( uint8_t slot ) method release (line 148) | void release() method claim (line 155) | void claim() method claim_free (line 159) | bool claim_free() method is_posted_to_free_list (line 167) | bool is_posted_to_free_list(){ return _posted; } type pool (line 192) | struct pool type thread_local_data (line 199) | struct thread_local_data method thread_local_data (line 201) | thread_local_data() method pool (line 217) | pool() method pool (line 228) | static pool& instance() method thread_local_data (line 234) | static thread_local_data*& local_pool() method thread_local_data (line 201) | thread_local_data() method thread_local_data (line 240) | thread_local_data& get_local_pool() method thread_local_data (line 201) | thread_local_data() method do_free (line 274) | void do_free( char* c ) method claim_page (line 304) | void claim_page( thread_local_data& tld ) method free (line 352) | static void free( char* c ) { instance().do_free(c); ... function malloc_bench (line 365) | void malloc_bench( int tid ) function bench (line 386) | void bench(int tid) function pc_bench_worker (line 411) | void pc_bench_worker( int pro, int con, char* (*do_alloc)(int s), void (... function pc_bench_worker (line 451) | void pc_bench_worker( int pro, int con, char* (*do_alloc)(), void (*do_f... function pc_bench (line 481) | void pc_bench(char* (*do_alloc)(int s), void (*do_free)(char*) ) function pc_bench_st (line 510) | void pc_bench_st(char* (*do_alloc)(int s), void (*do_free)(char*) ) function do_malloc_free (line 542) | void do_malloc_free(char* c){ free(c); } function do_hash_free (line 581) | void do_hash_free(char* c) function main (line 638) | int main( int argc, char** argv ) FILE: malloc2.cpp type block_header (line 24) | struct block_header method calc_size (line 31) | size_t calc_size(){ return _next - _page_pos; } method calc_bin_num (line 32) | int calc_bin_num(){ return LOG2(calc_size())+1; } type page (line 42) | struct page class thread_allocator (line 47) | class thread_allocator method free (line 50) | void free( char* c ) method thread_allocator (line 74) | static thread_allocator& get() class garbage_collector (line 138) | class garbage_collector class recycle_bin (line 146) | class recycle_bin method recycle_bin (line 149) | recycle_bin(int num = 0) method sync_write_pos (line 153) | void sync_write_pos() method get_bin_num (line 170) | int get_bin_num( size_t s ) method recycle_bin (line 175) | recycle_bin& get_bin( size_t bin_num ) method recycle_bin (line 149) | recycle_bin(int num = 0) method sync_write_pos (line 153) | void sync_write_pos() method garbage_collector (line 184) | static garbage_collector& get() function block_header (line 282) | block_header* allocate_block_page() method calc_size (line 31) | size_t calc_size(){ return _next - _page_pos; } method calc_bin_num (line 32) | int calc_bin_num(){ return LOG2(calc_size())+1; } function free2 (line 448) | void free2( char* s ) function pc_bench_worker (line 487) | void pc_bench_worker( int pro, int con, char* (*do_alloc)(int s), void (... function pc_bench (line 522) | void pc_bench(int n, char* (*do_alloc)(int s), void (*do_free)(char*) ) function pc_bench_st (line 606) | void pc_bench_st(char* (*do_alloc)(int s), void (*do_free)(char*) ) function do_malloc_free (line 624) | void do_malloc_free(char* c) function main (line 630) | int main( int argc, char** argv ) FILE: malloc3.cpp class block_header (line 37) | class block_header method block_header (line 40) | block_header* next() method block_header (line 46) | block_header* prev() type flags_enum (line 53) | enum flags_enum type queue_state (line 63) | struct queue_state // the block is serving as a linked-list node method set_state (line 69) | void set_state( flags_enum e ) method flags_enum (line 73) | flags_enum get_state() { return (flags_enum)_flags; } method queue_state (line 75) | queue_state& as_queue_node() method queue_state (line 80) | queue_state& init_as_queue_node() method init (line 90) | void init( int s ) method size (line 97) | int size()const { return abs(_size); } method raw_size (line 99) | int raw_size()const { return _size; } method raw_prev_size (line 100) | int raw_prev_size()const { return _prev_size; } method calc_forward_extent (line 103) | int calc_forward_extent() method page_size (line 112) | int page_size() method block_header (line 118) | block_header* head() method block_header (line 130) | block_header* split_after( int s ) method block_header (line 153) | block_header* merge_next() method block_header (line 195) | block_header* merge_prev() type block_list_node (line 217) | struct block_list_node method block_list_node (line 219) | block_list_node():next(nullptr){} method block_header (line 222) | block_header* header() method count (line 227) | int count() method block_list_node (line 240) | block_list_node* find_end() class thread_allocator (line 252) | class thread_allocator method free (line 257) | void free( char* c ) method thread_allocator (line 272) | static thread_allocator& get() method print_cache (line 286) | void print_cache() method store_cache (line 296) | bool store_cache( block_header* h ) method block_header (line 326) | block_header* fetch_cache( int bin ) method block_header (line 371) | block_header* get_garbage() // grab a pointer previously claimed. class garbage_collector (line 409) | class garbage_collector class recycle_bin (line 415) | class recycle_bin method recycle_bin (line 418) | recycle_bin() method available (line 426) | int64_t available() { return _write_pos -... method claim (line 428) | int64_t claim( int64_t num ) { return _read_pos.fe... method block_header (line 429) | block_header* get_block( int64_t claim_pos ) { return _free_queue.... method clear_block (line 430) | void clear_block( int64_t claim_pos ) { _free_queue.at(clai... method check_status (line 435) | int64_t check_status() method push (line 486) | void push( block_header* h ) method block_header (line 498) | block_header* pop() method recycle_bin (line 517) | recycle_bin& find_cache_bin_for( block_header* h ) method recycle_bin (line 418) | recycle_bin() method available (line 426) | int64_t available() { return _write_pos -... method claim (line 428) | int64_t claim( int64_t num ) { return _read_pos.fe... method block_header (line 429) | block_header* get_block( int64_t claim_pos ) { return _free_queue.... method clear_block (line 430) | void clear_block( int64_t claim_pos ) { _free_queue.at(clai... method check_status (line 435) | int64_t check_status() method push (line 486) | void push( block_header* h ) method block_header (line 498) | block_header* pop() method get_bin_num (line 525) | int get_bin_num( size_t s ) method recycle_bin (line 530) | recycle_bin& get_bin( size_t bin_num ) method recycle_bin (line 418) | recycle_bin() method available (line 426) | int64_t available() { return _write_pos -... method claim (line 428) | int64_t claim( int64_t num ) { return _read_pos.fe... method block_header (line 429) | block_header* get_block( int64_t claim_pos ) { return _free_queue.... method clear_block (line 430) | void clear_block( int64_t claim_pos ) { _free_queue.at(clai... method check_status (line 435) | int64_t check_status() method push (line 486) | void push( block_header* h ) method block_header (line 498) | block_header* pop() method garbage_collector (line 538) | static garbage_collector& get() function block_header (line 692) | block_header* allocate_block_page() method block_header (line 40) | block_header* next() method block_header (line 46) | block_header* prev() type flags_enum (line 53) | enum flags_enum type queue_state (line 63) | struct queue_state // the block is serving as a linked-list node method set_state (line 69) | void set_state( flags_enum e ) method flags_enum (line 73) | flags_enum get_state() { return (flags_enum)_flags; } method queue_state (line 75) | queue_state& as_queue_node() method queue_state (line 80) | queue_state& init_as_queue_node() method init (line 90) | void init( int s ) method size (line 97) | int size()const { return abs(_size); } method raw_size (line 99) | int raw_size()const { return _size; } method raw_prev_size (line 100) | int raw_prev_size()const { return _prev_size; } method calc_forward_extent (line 103) | int calc_forward_extent() method page_size (line 112) | int page_size() method block_header (line 118) | block_header* head() method block_header (line 130) | block_header* split_after( int s ) method block_header (line 153) | block_header* merge_next() method block_header (line 195) | block_header* merge_prev() function get_min_bin (line 722) | int get_min_bin( size_t s ) function block_header (line 782) | block_header* thread_allocator::fetch_block_from_bin( int bin ) method block_header (line 40) | block_header* next() method block_header (line 46) | block_header* prev() type flags_enum (line 53) | enum flags_enum type queue_state (line 63) | struct queue_state // the block is serving as a linked-list node method set_state (line 69) | void set_state( flags_enum e ) method flags_enum (line 73) | flags_enum get_state() { return (flags_enum)_flags; } method queue_state (line 75) | queue_state& as_queue_node() method queue_state (line 80) | queue_state& init_as_queue_node() method init (line 90) | void init( int s ) method size (line 97) | int size()const { return abs(_size); } method raw_size (line 99) | int raw_size()const { return _size; } method raw_prev_size (line 100) | int raw_prev_size()const { return _prev_size; } method calc_forward_extent (line 103) | int calc_forward_extent() method page_size (line 112) | int page_size() method block_header (line 118) | block_header* head() method block_header (line 130) | block_header* split_after( int s ) method block_header (line 153) | block_header* merge_next() method block_header (line 195) | block_header* merge_prev() function free2 (line 844) | void free2( char* s ) FILE: mmap_alloc.hpp function pagesize (line 13) | size_t pagesize() function page_count (line 17) | size_t page_count( size_t s ) function mmap_free (line 39) | void mmap_free( void* pos, size_t s )