4#ifndef WPI_MEMORY_THREADING_HPP_INCLUDED 
    5#define WPI_MEMORY_THREADING_HPP_INCLUDED 
   15#if WPI_HOSTED_IMPLEMENTATION 
   43        template <
class RawAllocator>
 
   45        : std::integral_constant<bool, !allocator_traits<RawAllocator>::is_stateful::value>
 
 
   53            template <
class RawAllocator, 
class Mutex>
 
   55                typename std::conditional<is_thread_safe_allocator<RawAllocator>::value, 
no_mutex,
 
   60            template <
class Mutex>
 
   95                void lock() const noexcept {}
 
 
  104            template <class Alloc, class Mutex>
 
  114                : mutex_(other.mutex_), alloc_(other.alloc_)
 
  116                    other.mutex_ = 
nullptr;
 
  117                    other.alloc_ = 
nullptr;
 
 
 
  145            template <
class Alloc, 
class Mutex>
 
The default specialization of the wpi::memory::allocator_traits.
Definition threading.hpp:106
Alloc * operator->() const noexcept
Definition threading.hpp:134
locked_allocator(locked_allocator &&other) noexcept
Definition threading.hpp:113
Alloc & operator*() const noexcept
Definition threading.hpp:128
~locked_allocator() noexcept
Definition threading.hpp:120
locked_allocator(Alloc &alloc, Mutex &m) noexcept
Definition threading.hpp:108
locked_allocator & operator=(locked_allocator &&other) noexcept=delete
mutex_storage() noexcept=default
void unlock() const noexcept
Definition threading.hpp:96
~mutex_storage() noexcept=default
Definition threading.hpp:62
mutex_storage() noexcept=default
~mutex_storage() noexcept=default
mutex_storage & operator=(const mutex_storage &) noexcept
Definition threading.hpp:67
void unlock() const noexcept
Definition threading.hpp:77
void lock() const
Definition threading.hpp:72
detail namespace with internal helper functions
Definition input_adapters.h:32
typename std::conditional< is_thread_safe_allocator< RawAllocator >::value, no_mutex, Mutex >::type mutex_for
Definition threading.hpp:54
locked_allocator< Alloc, Mutex > lock_allocator(Alloc &a, Mutex &m)
Definition threading.hpp:146
Memory namespace.
Definition heap_allocator.hpp:20
Foonathan namespace.
Definition ntcore_cpp.h:26
Specifies whether or not a RawAllocator is thread safe as-is.
Definition threading.hpp:46
A dummy Mutex class that does not lock anything.
Definition threading.hpp:27
bool try_lock() noexcept
Definition threading.hpp:30
void lock() noexcept
Definition threading.hpp:28
void unlock() noexcept
Definition threading.hpp:35
#define WPI_MEMORY_ASSERT(Expr)
Definition assert.hpp:46