__gnu_cxx::__pool_alloc_base(3)

__gnu_cxx::__pool_alloc_base3

Base class for __pool_alloc.

Usage

#include <pool_allocator.h>

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

Protected Types

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

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

4 releases since Debian 3.1 (Sarge); the text changed 3 times.

  1. 3.1
  2. 4.0
  3. 5.0
  4. Arch

Author

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

From gcc 16.2.1+r23+gd564253eb6c8-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.