__gnu_cxx::__pool_alloc_base.3cxx
Contents
Detailed Description
Base class for __pool_alloc.
Uses various allocators to fulfill underlying requests (and makes as few requests as possible when in
default high-speed pool mode).
Important implementation properties: 0. If globally mandated, then allocate objects from new
1. If the clients request an object of size > _S_max_bytes, the resulting object will be obtained
directly from new
2. In all other cases, we allocate an object of size exactly _S_round_up(requested_size). Thus the
client has enough size information that we can return the object to the proper free list without
permanently losing part of the object.
Name
__gnu_cxx::__pool_alloc_base - Base class for __pool_alloc.
Synopsis
#include <pool_allocator.h>
Inherited by __gnu_cxx::__pool_alloc<_Tp> [private].
ProtectedTypes
enum { _S_align }
enum { _S_max_bytes }
enum { _S_free_list_size }
ProtectedMemberFunctions
char * _M_allocate_chunk (size_t __n, int &__nobjs)
_Obj *volatile * _M_get_free_list (size_t __bytes) throw ()
__mutex & _M_get_mutex () throw ()
void * _M_refill (size_t __n)
size_t _M_round_up (size_t __bytes)
StaticProtectedAttributes
static char * _S_end_free
static _Obj *volatile _S_free_list [_S_free_list_size]
static size_t _S_heap_size
static char * _S_start_free