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