WPILibC++ 2025.1.1
Loading...
Searching...
No Matches
wpi::memory::thread_safe_allocator< RawAllocator, Mutex > Class Template Reference

An alias template for allocator_storage using the direct_storage policy with a mutex. More...

#include <wpi/memory/allocator_storage.hpp>

Inheritance diagram for wpi::memory::thread_safe_allocator< RawAllocator, Mutex >:
wpi::memory::allocator_storage< direct_storage< RawAllocator >, Mutex >

Related Symbols

(Note that these are not member symbols.)

template<class Mutex , class RawAllocator >
auto make_thread_safe_allocator (RawAllocator &&allocator) -> thread_safe_allocator< typename std::decay< RawAllocator >::type, Mutex >
 

Additional Inherited Members

- Public Types inherited from wpi::memory::allocator_storage< direct_storage< RawAllocator >, Mutex >
using allocator_type
 
using storage_policy
 
using mutex
 
using is_stateful
 
- Public Member Functions inherited from wpi::memory::allocator_storage< direct_storage< RawAllocator >, Mutex >
 allocator_storage ()=default
 
 allocator_storage (Alloc &&alloc,)
 
 allocator_storage (const allocator_storage< OtherPolicy, Mutex > &other,)
 
bool is_composable () const noexcept
 
 allocator_storage (allocator_storage &&other) noexcept
 
allocator_storageoperator= (allocator_storage &&other) noexcept
 
 allocator_storage (const allocator_storage &)=default
 
allocator_storageoperator= (const allocator_storage &)=default
 
void * allocate_node (std::size_t size, std::size_t alignment)
 
void * allocate_array (std::size_t count, std::size_t size, std::size_t alignment)
 
void deallocate_node (void *ptr, std::size_t size, std::size_t alignment) noexcept
 
void deallocate_array (void *ptr, std::size_t count, std::size_t size, std::size_t alignment) noexcept
 
std::size_t max_node_size () const
 
std::size_t max_array_size () const
 
std::size_t max_alignment () const
 
void * try_allocate_node (std::size_t size, std::size_t alignment) noexcept
 
void * try_allocate_array (std::size_t count, std::size_t size, std::size_t alignment) noexcept
 
bool try_deallocate_node (void *ptr, std::size_t size, std::size_t alignment) noexcept
 
bool try_deallocate_array (void *ptr, std::size_t count, std::size_t size, std::size_t alignment) noexcept
 
auto get_allocator () noexcept -> decltype(std::declval< storage_policy >().get_allocator())
 
auto get_allocator () const noexcept -> decltype(std::declval< const storage_policy >().get_allocator())
 
auto lock () noexcept -> implementation_defined
 
auto lock () const noexcept -> implementation_defined
 

Detailed Description

template<class RawAllocator, class Mutex>
class wpi::memory::thread_safe_allocator< RawAllocator, Mutex >

An alias template for allocator_storage using the direct_storage policy with a mutex.

It has a similar effect as allocator_adapter but performs synchronization. The Mutex will default to std::mutex if threading is supported, otherwise there is no default.

Friends And Related Symbol Documentation

◆ make_thread_safe_allocator()

template<class Mutex , class RawAllocator >
auto make_thread_safe_allocator ( RawAllocator && allocator) -> thread_safe_allocator<typename std::decay<RawAllocator>::type, Mutex>
related
Returns:
A new thread_safe_allocator object created by forwarding to the constructor, specifying a certain mutex type.
Requires:
It requires threading support from the implementation.

The documentation for this class was generated from the following file: