Classe sync_shared
Descreve um filtro de sincronização que usa um mutex para controlar o acesso a um objeto de cache que é compartilhado por todos os alocadores.
Sintaxe
template <class Cache>
class sync_shared
Parâmetros
Cache
O tipo de cache associado ao filtro de sincronização. Pode ser cache_chunklist
, cache_freelist
ou cache_suballoc
.
Funções de membro
Função de membro | Descrição |
---|---|
allocate | Aloca um bloco de memória. |
deallocate | Libera um número especificado de objetos do armazenamento começando em uma posição especificada. |
equals | Compara a igualdade de dois caches. |
Requisitos
Cabeçalho:<allocators>
Namespace: stdext
sync_shared::alocar
Aloca um bloco de memória.
void *allocate(std::size_t count);
Parâmetros
count
O número de elementos na matriz a serem alocados.
Valor de retorno
Um ponteiro para o objeto alocado.
Comentários
A função membro bloqueia o mutex, chama cache.allocate(count)
, desbloqueia o mutex e retorna o resultado da chamada anterior a cache.allocate(count)
. cache
representa o objeto de cache atual.
sync_shared::d eallocate
Libera um número especificado de objetos do armazenamento começando em uma posição especificada.
void deallocate(void* ptr, std::size_t count);
Parâmetros
ptr
Um ponteiro para o primeiro objeto a ser desalocado do armazenamento.
count
O número de objetos a serem desalocados do armazenamento.
Comentários
Essa função membro bloqueia o mutex, chama cache.deallocate(ptr, count)
, em que cache
representa o objeto de cache e, em seguida, desbloqueia o mutex.
sync_shared::igual
Compara a igualdade de dois caches.
bool equals(const sync_shared<Cache>& Other) const;
Parâmetros
Cache
O tipo de cache associado ao filtro de sincronização.
Outras
O cache a ser comparado quanto à igualdade.
Valor de retorno
true
se o resultado de cache.equals(Other.cache)
, em que cache
representa o objeto de cache, for true
; caso contrário, false
.