◐ Shell
clean mode source ↗

std::pmr::synchronized_pool_resource — cppreference.com

Материал из cppreference.com

<tbody> </tbody>

class synchronized_pool_resource : public std::pmr::memory_resource;

(начиная с C++17)

Класс std::pmr::synchronized_pool_resource это класс ресурсов памяти общего назначения со следующими свойствами:

  • Он владеет выделенной памятью и освобождает её при уничтожении, даже если deallocate не вызывался для некоторых выделенных блоков.
  • Он состоит из набора пулов, которые обслуживают запросы на блоки разного размера. Каждый пул управляет набором фрагментов, которые затем делятся на блоки одинакового размера.
  • Вызовы do_allocate направляются в пул, обслуживающий наименьшие блоки, соответствующие запрошенному размеру.
  • Исчерпание памяти в пуле приводит к тому, что следующий запрос на выделение для этого пула выделяет дополнительный фрагмент памяти для пополнения пула из вышестоящего аллокатора. Полученный размер фрагмента увеличивается в геометрической прогрессии.
  • Запросы на выделение, которые превышают максимальный размер блока, обслуживаются напрямую вышестоящим аллокатором.
  • Максимальный размер блока и максимальный размер фрагмента можно настроить, передав структуру std::pmr::pool_options в его конструктор.

synchronized_pool_resource может быть доступен из нескольких потоков без внешней синхронизации и может иметь пулы для конкретных потоков для снижения затрат на синхронизацию. Если доступ к ресурсу памяти осуществляется только из одного потока, unsynchronized_pool_resource более эффективен.

Функции-элементы

создаёт synchronized_pool_resource
(public функция-элемент) [править]
уничтожает synchronized_pool_resource, освобождая всю выделенную память
(virtual public функция-элемент) [править]

operator=

[удалено]

оператор присваивания копированием удалён. synchronized_pool_resource нельзя присвоить копированием
(public функция-элемент) [править]
Открытые функции-элементы
освобождает всю выделенную память
(public функция-элемент) [править]
возвращает указатель на вышестоящий ресурс памяти
(public функция-элемент) [править]
возвращает параметры, управляющие поведением пула этого ресурса
(public функция-элемент) [править]
Защищённые функции-элементы

[virtual]

выделяет память
(virtual protected функция-элемент) [править]
возвращает память в пул
(virtual protected функция-элемент) [править]

[virtual]

сравнивает на равенство с другим memory_resource
(virtual protected функция-элемент) [править]