QuantumLibrary
|
Provides fast (quasi zero-time) in-place allocation for coroutines. Coroutine stacks are pre-allocated from separate (i.e. non-contiguous) heap blocks and maintained in a reusable list. More...
#include <quantum_coroutine_pool_allocator.h>
Public Types | |
typedef CoroutinePoolAllocator< STACK_TRAITS > | this_type |
typedef size_t | size_type |
typedef uint16_t | index_type |
typedef STACK_TRAITS | traits |
Public Member Functions | |
CoroutinePoolAllocator (index_type size) | |
CoroutinePoolAllocator (const this_type &)=delete | |
CoroutinePoolAllocator (this_type &&) | |
CoroutinePoolAllocator & | operator= (const this_type &)=delete |
CoroutinePoolAllocator & | operator= (this_type &&) |
virtual | ~CoroutinePoolAllocator () |
boost::context::stack_context | allocate () |
void | deallocate (const boost::context::stack_context &ctx) |
size_t | allocatedBlocks () const |
size_t | allocatedHeapBlocks () const |
bool | isFull () const |
bool | isEmpty () const |
Provides fast (quasi zero-time) in-place allocation for coroutines. Coroutine stacks are pre-allocated from separate (i.e. non-contiguous) heap blocks and maintained in a reusable list.
typedef uint16_t Bloomberg::quantum::CoroutinePoolAllocator< STACK_TRAITS >::index_type |
typedef size_t Bloomberg::quantum::CoroutinePoolAllocator< STACK_TRAITS >::size_type |
typedef CoroutinePoolAllocator<STACK_TRAITS> Bloomberg::quantum::CoroutinePoolAllocator< STACK_TRAITS >::this_type |
typedef STACK_TRAITS Bloomberg::quantum::CoroutinePoolAllocator< STACK_TRAITS >::traits |
Bloomberg::quantum::CoroutinePoolAllocator< STACK_TRAITS >::CoroutinePoolAllocator | ( | index_type | size | ) |
|
delete |
Bloomberg::quantum::CoroutinePoolAllocator< STACK_TRAITS >::CoroutinePoolAllocator | ( | this_type && | other | ) |
|
virtual |
boost::context::stack_context Bloomberg::quantum::CoroutinePoolAllocator< STACK_TRAITS >::allocate | ( | ) |
size_t Bloomberg::quantum::CoroutinePoolAllocator< STACK_TRAITS >::allocatedBlocks | ( | ) | const |
size_t Bloomberg::quantum::CoroutinePoolAllocator< STACK_TRAITS >::allocatedHeapBlocks | ( | ) | const |
void Bloomberg::quantum::CoroutinePoolAllocator< STACK_TRAITS >::deallocate | ( | const boost::context::stack_context & | ctx | ) |
bool Bloomberg::quantum::CoroutinePoolAllocator< STACK_TRAITS >::isEmpty | ( | ) | const |
bool Bloomberg::quantum::CoroutinePoolAllocator< STACK_TRAITS >::isFull | ( | ) | const |
|
delete |
CoroutinePoolAllocator< STACK_TRAITS > & Bloomberg::quantum::CoroutinePoolAllocator< STACK_TRAITS >::operator= | ( | this_type && | other | ) |