__gnu_cxx::__pool_alloc_base(3cxx)

__gnu_cxx::__pool_alloc_base3cxx

Base class for __pool_alloc.

Usage

#include <pool_allocator.h>

Inherited by __gnu_cxx::__pool_alloc< _Tp > [private].

Protected Types

enum { _S_align }
enum { _S_max_bytes }
enum { _S_free_list_size }

Protected Member Functions

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)

Static Protected Attributes

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

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.

Releases

8 releases since Debian 6.0 (Squeeze); the text changed 7 times.

  1. 6.0
  2. 7
  3. 8
  4. 9
  5. 10
  6. 11
  7. 12
  8. 13

Author

Generated automatically by Doxygen for libstdc++ from the source code.

From libstdc++-12-doc 12.4.0-5 in Debian 13 (Trixie). Also shipped by libstdc++-13-doc, libstdc++-14-doc. Parsed by carta from the page's man source.