sync_shared Class
Describes a synchronization filter that uses a mutex to control access to a cache object that is shared by all allocators.
Syntax
template <class Cache>
class sync_shared
Parameters
Cache
The type of cache associated with the synchronization filter. It can be cache_chunklist
, cache_freelist
, or cache_suballoc
.
Member functions
Member function | Description |
---|---|
allocate | Allocates a block of memory. |
deallocate | Frees a specified number of objects from storage beginning at a specified position. |
equals | Compares two caches for equality. |
Requirements
Header: <allocators>
Namespace: stdext
sync_shared::allocate
Allocates a block of memory.
void *allocate(std::size_t count);
Parameters
count
The number of elements in the array to be allocated.
Return Value
A pointer to the allocated object.
Remarks
The member function locks the mutex, calls cache.allocate(count)
, unlocks the mutex, and returns the result of the earlier call to cache.allocate(count)
. cache
represents the current cache object.
sync_shared::deallocate
Frees a specified number of objects from storage beginning at a specified position.
void deallocate(void* ptr, std::size_t count);
Parameters
ptr
A pointer to the first object to be deallocated from storage.
count
The number of objects to be deallocated from storage.
Remarks
This member function locks the mutex, calls cache.deallocate(ptr, count)
, where cache
represents the cache object, and then unlocks the mutex.
sync_shared::equals
Compares two caches for equality.
bool equals(const sync_shared<Cache>& Other) const;
Parameters
Cache
The type of cache associated with the synchronization filter.
Other
The cache to compare for equality.
Return Value
true
if the result of cache.equals(Other.cache)
, where cache
represents the cache object, is true
; otherwise, false
.