Класс sync_shared
Описывает фильтр синхронизации, использующий мьютекс для управления доступом к объекту кэша, который является общим для всех распределителей.
Синтаксис
template <class Cache>
class sync_shared
Параметры
Cache
Тип кэша, связанный с фильтром синхронизации. Он может иметь значение cache_chunklist
, cache_freelist
или cache_suballoc
.
Функции элементов
Функция-член | Description |
---|---|
allocate | Выделяет блок памяти. |
deallocate | Освобождает указанное число объектов из памяти, начиная с заданной позиции. |
equals | Сравнивает два кэша на равенство. |
Требования
Заголовок:<распределители>
Пространство имен: stdext
sync_shared::allocate
Выделяет блок памяти.
void *allocate(std::size_t count);
Параметры
count
Число выделяемых элементов в массиве.
Возвращаемое значение
Указатель на выделяемый объект.
Замечания
Функция-член блокирует мьютекс, вызывает метод cache.allocate(count)
, разблокирует мьютекс и возвращает результат более раннего вызова cache.allocate(count)
. cache
представляет текущий объект кэша.
sync_shared::d eallocate
Освобождает указанное число объектов из памяти, начиная с заданной позиции.
void deallocate(void* ptr, std::size_t count);
Параметры
ptr
Указатель на первый объект, который необходимо освободить из хранилища.
count
Количество объектов для освобождения из хранилища.
Замечания
Эта функция-член блокирует мьютекс, вызывает метод cache.deallocate(ptr, count)
, где cache
представляет объект кэша, а затем разблокирует мьютекс.
sync_shared::equals
Сравнивает два кэша на равенство.
bool equals(const sync_shared<Cache>& Other) const;
Параметры
Cache
Тип кэша, связанный с фильтром синхронизации.
Другое
Кэш для сравнения на равенство.
Возвращаемое значение
Значение true
если результат cache.equals(Other.cache)
, где cache
представляет объект кэша, равен true
; в противном случае — значение false
.