Zero  0.1.0
Classes | Typedefs | Functions | Variables
w_gc_pool_forest.h File Reference
#include <cstdint>
#include <memory>
#include "AtomicCounter.hpp"
#include "w_defines.h"
#include "w_debug.h"
#include "lsn.h"

Go to the source code of this file.

Classes

class  GcPointer< T >
 Wrapper for gc_pointer_raw. More...
 
struct  GcSegment< T >
 A segment in each generation. More...
 
struct  GcGeneration< T >
 A generation of objects. More...
 
struct  GcPoolForest< T >
 Garbage-collected Pool Forest. More...
 
union  gc_pointer_raw
 A portable and logical pointer with mark-for-death, ABA counter, and generation/segement bits. More...
 
class  GcPointer< T >
 Wrapper for gc_pointer_raw. More...
 
struct  GcSegment< T >
 A segment in each generation. More...
 
struct  GcGeneration< T >
 A generation of objects. More...
 
struct  GcPoolEntry
 
struct  GcWakeupFunctor
 
struct  GcPoolForest< T >
 Garbage-collected Pool Forest. More...
 

Typedefs

typedef int32_t gc_status
 Status bits in gc_pointer. More...
 
typedef uint32_t gc_aba
 
typedef uint8_t gc_generation
 
typedef uint8_t gc_segment
 
typedef uint16_t gc_offset
 
typedef uint64_t gc_thread_id
 

Functions

bool operator== (const gc_pointer_raw &a, const gc_pointer_raw &b)
 
bool operator!= (const gc_pointer_raw &a, const gc_pointer_raw &b)
 

Variables

const size_t GC_MAX_GENERATIONS = (1 << (sizeof(gc_generation) * 8))
 
const size_t GC_MAX_SEGMENTS = (1 << (sizeof(gc_segment) * 8))
 
const size_t GC_MAX_OFFSETS = (1 << (sizeof(gc_offset) * 8))
 

Function Documentation

§ operator!=()

bool operator!= ( const gc_pointer_raw a,
const gc_pointer_raw b 
)
inline

§ operator==()

bool operator== ( const gc_pointer_raw a,
const gc_pointer_raw b 
)
inline

Variable Documentation

§ GC_MAX_GENERATIONS

const size_t GC_MAX_GENERATIONS = (1 << (sizeof(gc_generation) * 8))

§ GC_MAX_OFFSETS

const size_t GC_MAX_OFFSETS = (1 << (sizeof(gc_offset) * 8))

§ GC_MAX_SEGMENTS

const size_t GC_MAX_SEGMENTS = (1 << (sizeof(gc_segment) * 8))