Namespaces
Variants

std::experimental::pmr:: synchronized_pool_resource

From cppreference.net
Definido en el encabezado <experimental/memory_resource>
class synchronized_pool_resource : public memory_resource ;
(library fundamentals TS)

La clase std::experimental::pmr::synchronized_pool_resource es una clase de recurso de memoria de propósito general con las siguientes propiedades:

  • Posee la memoria asignada y la libera en la destrucción, incluso si deallocate no ha sido llamado para algunos de los bloques asignados.
  • Consiste en una colección de pools que atienden solicitudes para diferentes tamaños de bloque. Cada pool gestiona una colección de chunks que luego se dividen en bloques de tamaño uniforme.
  • Las llamadas a do_allocate se dirigen al pool que sirve los bloques más pequeños que pueden acomodar el tamaño solicitado.
  • Agotar la memoria en el pool hace que la siguiente solicitud de asignación para ese pool asigne un chunk adicional de memoria del upstream allocator para reabastecer el pool. El tamaño del chunk obtenido aumenta geométricamente.
  • Las solicitudes de asignación que exceden el tamaño de bloque más grande se atienden directamente desde el upstream allocator .
  • El tamaño de bloque más grande y el tamaño máximo de chunk pueden ajustarse pasando una estructura std::experimental::pmr::pool_options a su constructor.

synchronized_pool_resource puede ser accedido desde múltiples hilos sin sincronización externa, y puede tener grupos específicos por hilo para reducir los costos de sincronización. Si el recurso de memoria solo es accedido desde un hilo, unsynchronized_pool_resource es más eficiente.

Funciones miembro

construye un synchronized_pool_resource
(función miembro pública)
[virtual]
destruye un synchronized_pool_resource , liberando toda la memoria asignada
(función miembro pública virtual)
operator=
[deleted]
el operador de asignación de copia está eliminado. synchronized_pool_resource no es asignable por copia
(función miembro pública)
Funciones miembro públicas
libera toda la memoria asignada
(función miembro pública)
devuelve un puntero al recurso de memoria ascendente
(función miembro pública)
devuelve las opciones que controlan el comportamiento de agrupamiento de este recurso
(función miembro pública)
Funciones miembro protegidas
[virtual]
asigna memoria
(función miembro protegida virtual)
[virtual]
devuelve memoria al grupo
(función miembro protegida virtual)
[virtual]
compara para igualdad con otro memory_resource
(función miembro protegida virtual)