Skip to content

Namespace Ase::Loft

Namespace List > Ase > Loft

Loft - A special purpose memory allocator for lock- and obstruction-free thread progress.

Classes

Type Name
class Allocator <typename T>
Allocator for STL containers.
struct AllocatorBase
Internal Helper.
struct ArenaSpan
struct BumpAllocator
struct LoftBuckets

Public Types

Type Name
typedef std::vector< ArenaSpan > ArenaList
enum size_t Flags
Flags for allocator behavior.

Public Static Attributes

Type Name
constexpr size_t MINIMUM_HUGEPAGE = = 2 * 1024 * 1024
constexpr unsigned NUMBER_OF_BUCKETS = = NUMBER_OF_POWER2_BUCKETS + SMALL_BLOCK_BUCKETS
constexpr unsigned NUMBER_OF_POWER2_BUCKETS = = sizeof (uintptr_t) * 8
constexpr unsigned SMALL_BLOCK_BUCKETS = = SMALL_BLOCK_LIMIT / 64
constexpr unsigned SMALL_BLOCK_LIMIT = = 8192
std::atomic< Flags > config_flags = = Flags (0)
std::atomic< std::function< void()> * > config_lowmem_cb = = nullptr
std::atomic< size_t > config_lowmem_notified = = 0
std::atomic< size_t > config_preallocate = = 2 * MINIMUM_HUGEPAGE
std::atomic< size_t > config_watermark = = MINIMUM_HUGEPAGE

Public Static Functions

Type Name
unsigned bucket_index (unsigned long long n)
size_t bucket_size (unsigned index)

Public Types Documentation

typedef ArenaList

using Ase::Loft::ArenaList = typedef std::vector<ArenaSpan>;

enum Flags

enum Ase::Loft::Flags {
    PREFAULT_PAGES = 1
};

Public Static Attributes Documentation

variable MINIMUM_HUGEPAGE

constexpr size_t Ase::Loft::MINIMUM_HUGEPAGE;

variable NUMBER_OF_BUCKETS

constexpr unsigned Ase::Loft::NUMBER_OF_BUCKETS;

variable NUMBER_OF_POWER2_BUCKETS

constexpr unsigned Ase::Loft::NUMBER_OF_POWER2_BUCKETS;

variable SMALL_BLOCK_BUCKETS

constexpr unsigned Ase::Loft::SMALL_BLOCK_BUCKETS;

variable SMALL_BLOCK_LIMIT

constexpr unsigned Ase::Loft::SMALL_BLOCK_LIMIT;

variable config_flags

std::atomic<Flags> Ase::Loft::config_flags;

variable config_lowmem_cb

std::atomic<std::function<void()>*> Ase::Loft::config_lowmem_cb;

variable config_lowmem_notified

std::atomic<size_t> Ase::Loft::config_lowmem_notified;

variable config_preallocate

std::atomic<size_t> Ase::Loft::config_preallocate;

variable config_watermark

std::atomic<size_t> Ase::Loft::config_watermark;

Public Static Functions Documentation

function bucket_index

static inline unsigned Ase::Loft::bucket_index (
    unsigned long long n
) 

function bucket_size

static inline size_t Ase::Loft::bucket_size (
    unsigned index
) 


The documentation for this class was generated from the following file /__w/anklang/anklang/ase/loft.cc