libcopp
1.1.0
|
#include <stack_pool.h>
Data Structures | |
struct | configure_t |
struct | constructor_delegator |
struct | limit_t |
Public Types | |
typedef TAlloc | allocator_t |
typedef std::shared_ptr< stack_pool< TAlloc > > | ptr_t |
Static Public Member Functions | |
static ptr_t | create () |
Private Member Functions | |
stack_pool () UTIL_CONFIG_DELETED_FUNCTION | |
stack_pool (const stack_pool &) UTIL_CONFIG_DELETED_FUNCTION | |
Private Attributes | |
limit_t | limits_ |
configure_t | conf_ |
allocator_t | alloc_ |
util::lock::spin_lock | action_lock_ |
std::list< stack_context > | free_list_ |
Definition at line 22 of file stack_pool.h.
typedef TAlloc copp::stack_pool< TAlloc >::allocator_t |
Definition at line 24 of file stack_pool.h.
typedef std::shared_ptr<stack_pool<TAlloc> > copp::stack_pool< TAlloc >::ptr_t |
Definition at line 25 of file stack_pool.h.
|
private |
|
private |
|
inline |
Definition at line 54 of file stack_pool.h.
References copp::stack_pool< TAlloc >::configure_t::auto_gc, copp::stack_pool< TAlloc >::conf_, copp::stack_traits::default_size(), copp::stack_pool< TAlloc >::limits_, and copp::stack_pool< TAlloc >::configure_t::stack_size.
|
inline |
Definition at line 60 of file stack_pool.h.
References copp::stack_pool< TAlloc >::clear().
|
inline |
allocate memory and attach to stack context [standard function]
ctx | stack context |
size | stack size |
Definition at line 108 of file stack_pool.h.
References copp::stack_pool< TAlloc >::action_lock_, copp::stack_pool< TAlloc >::alloc_, copp::stack_pool< TAlloc >::conf_, copp::stack_pool< TAlloc >::free_list_, copp::stack_pool< TAlloc >::limit_t::free_stack_number, copp::stack_pool< TAlloc >::limit_t::free_stack_size, likely, copp::stack_pool< TAlloc >::limits_, copp::stack_pool< TAlloc >::configure_t::max_stack_number, copp::stack_pool< TAlloc >::configure_t::max_stack_size, copp::stack_pool< TAlloc >::configure_t::stack_offset, copp::stack_pool< TAlloc >::configure_t::stack_size, copp::stack_pool< TAlloc >::limit_t::used_stack_number, and copp::stack_pool< TAlloc >::limit_t::used_stack_size.
|
inline |
Definition at line 280 of file stack_pool.h.
References copp::stack_pool< TAlloc >::action_lock_, copp::stack_pool< TAlloc >::alloc_, copp::stack_pool< TAlloc >::free_list_, copp::stack_pool< TAlloc >::limit_t::free_stack_number, copp::stack_pool< TAlloc >::limit_t::free_stack_size, copp::stack_pool< TAlloc >::limits_, util::lock::memory_order_release, and UTIL_LOCK_ATOMIC_THREAD_FENCE.
Referenced by copp::stack_pool< TAlloc >::set_stack_size(), and copp::stack_pool< TAlloc >::~stack_pool().
|
inlinestatic |
Definition at line 52 of file stack_pool.h.
Referenced by CASE_TEST(), and main().
|
inline |
deallocate memory from stack context [standard function]
ctx | stack context |
Definition at line 173 of file stack_pool.h.
References copp::stack_pool< TAlloc >::action_lock_, copp::stack_pool< TAlloc >::alloc_, copp::stack_pool< TAlloc >::configure_t::auto_gc, copp::stack_pool< TAlloc >::conf_, copp::stack_pool< TAlloc >::free_list_, copp::stack_pool< TAlloc >::limit_t::free_stack_number, copp::stack_pool< TAlloc >::limit_t::free_stack_size, copp::stack_pool< TAlloc >::gc(), likely, copp::stack_pool< TAlloc >::limits_, copp::stack_pool< TAlloc >::configure_t::stack_offset, copp::stack_pool< TAlloc >::configure_t::stack_size, copp::stack_pool< TAlloc >::limit_t::used_stack_number, and copp::stack_pool< TAlloc >::limit_t::used_stack_size.
|
inline |
Definition at line 215 of file stack_pool.h.
References copp::stack_pool< TAlloc >::action_lock_, copp::stack_pool< TAlloc >::alloc_, copp::stack_pool< TAlloc >::conf_, copp::stack_pool< TAlloc >::free_list_, copp::stack_pool< TAlloc >::limit_t::free_stack_number, copp::stack_pool< TAlloc >::limit_t::free_stack_size, copp::stack_pool< TAlloc >::configure_t::gc_number, likely, copp::stack_pool< TAlloc >::limits_, util::lock::memory_order_release, copp::stack_pool< TAlloc >::configure_t::min_stack_number, copp::stack_pool< TAlloc >::configure_t::min_stack_size, copp::stack_pool< TAlloc >::limit_t::used_stack_number, copp::stack_pool< TAlloc >::limit_t::used_stack_size, and UTIL_LOCK_ATOMIC_THREAD_FENCE.
Referenced by copp::stack_pool< TAlloc >::deallocate().
|
inline |
Definition at line 98 of file stack_pool.h.
References copp::stack_pool< TAlloc >::conf_, and copp::stack_pool< TAlloc >::configure_t::gc_number.
|
inline |
Definition at line 62 of file stack_pool.h.
References copp::stack_pool< TAlloc >::limits_.
|
inline |
Definition at line 87 of file stack_pool.h.
References copp::stack_pool< TAlloc >::conf_, and copp::stack_pool< TAlloc >::configure_t::max_stack_number.
|
inline |
Definition at line 85 of file stack_pool.h.
References copp::stack_pool< TAlloc >::conf_, and copp::stack_pool< TAlloc >::configure_t::max_stack_size.
|
inline |
Definition at line 92 of file stack_pool.h.
References copp::stack_pool< TAlloc >::conf_, and copp::stack_pool< TAlloc >::configure_t::min_stack_number.
|
inline |
Definition at line 90 of file stack_pool.h.
References copp::stack_pool< TAlloc >::conf_, and copp::stack_pool< TAlloc >::configure_t::min_stack_size.
|
inline |
Definition at line 65 of file stack_pool.h.
References copp::stack_pool< TAlloc >::alloc_.
|
inline |
Definition at line 66 of file stack_pool.h.
References copp::stack_pool< TAlloc >::alloc_.
|
inline |
Definition at line 81 of file stack_pool.h.
References copp::stack_pool< TAlloc >::conf_, and copp::stack_pool< TAlloc >::configure_t::stack_size.
|
inline |
Definition at line 82 of file stack_pool.h.
References copp::stack_pool< TAlloc >::conf_, and copp::stack_pool< TAlloc >::configure_t::stack_offset.
|
inline |
Definition at line 95 of file stack_pool.h.
References copp::stack_pool< TAlloc >::configure_t::auto_gc, and copp::stack_pool< TAlloc >::conf_.
|
inline |
Definition at line 94 of file stack_pool.h.
References copp::stack_pool< TAlloc >::configure_t::auto_gc, and copp::stack_pool< TAlloc >::conf_.
|
inline |
Definition at line 97 of file stack_pool.h.
References copp::stack_pool< TAlloc >::conf_, and copp::stack_pool< TAlloc >::configure_t::gc_number.
|
inline |
Definition at line 86 of file stack_pool.h.
References copp::stack_pool< TAlloc >::conf_, and copp::stack_pool< TAlloc >::configure_t::max_stack_number.
|
inline |
Definition at line 84 of file stack_pool.h.
References copp::stack_pool< TAlloc >::conf_, and copp::stack_pool< TAlloc >::configure_t::max_stack_size.
|
inline |
Definition at line 91 of file stack_pool.h.
References copp::stack_pool< TAlloc >::conf_, and copp::stack_pool< TAlloc >::configure_t::min_stack_number.
|
inline |
Definition at line 89 of file stack_pool.h.
References copp::stack_pool< TAlloc >::conf_, and copp::stack_pool< TAlloc >::configure_t::min_stack_size.
|
inline |
Definition at line 68 of file stack_pool.h.
References copp::stack_pool< TAlloc >::clear(), copp::stack_pool< TAlloc >::conf_, copp::stack_traits::minimum_size(), copp::stack_traits::round_to_page_size(), and copp::stack_pool< TAlloc >::configure_t::stack_size.
|
private |
Definition at line 300 of file stack_pool.h.
Referenced by copp::stack_pool< TAlloc >::allocate(), copp::stack_pool< TAlloc >::clear(), copp::stack_pool< TAlloc >::deallocate(), and copp::stack_pool< TAlloc >::gc().
|
private |
Definition at line 298 of file stack_pool.h.
Referenced by copp::stack_pool< TAlloc >::allocate(), copp::stack_pool< TAlloc >::clear(), copp::stack_pool< TAlloc >::deallocate(), copp::stack_pool< TAlloc >::gc(), and copp::stack_pool< TAlloc >::get_origin_allocator().
|
private |
Definition at line 297 of file stack_pool.h.
Referenced by copp::stack_pool< TAlloc >::allocate(), copp::stack_pool< TAlloc >::deallocate(), copp::stack_pool< TAlloc >::gc(), copp::stack_pool< TAlloc >::get_gc_once_number(), copp::stack_pool< TAlloc >::get_max_stack_number(), copp::stack_pool< TAlloc >::get_max_stack_size(), copp::stack_pool< TAlloc >::get_min_stack_number(), copp::stack_pool< TAlloc >::get_min_stack_size(), copp::stack_pool< TAlloc >::get_stack_size(), copp::stack_pool< TAlloc >::get_stack_size_offset(), copp::stack_pool< TAlloc >::is_auto_gc(), copp::stack_pool< TAlloc >::set_auto_gc(), copp::stack_pool< TAlloc >::set_gc_once_number(), copp::stack_pool< TAlloc >::set_max_stack_number(), copp::stack_pool< TAlloc >::set_max_stack_size(), copp::stack_pool< TAlloc >::set_min_stack_number(), copp::stack_pool< TAlloc >::set_min_stack_size(), copp::stack_pool< TAlloc >::set_stack_size(), and copp::stack_pool< TAlloc >::stack_pool().
|
private |
Definition at line 302 of file stack_pool.h.
Referenced by copp::stack_pool< TAlloc >::allocate(), copp::stack_pool< TAlloc >::clear(), copp::stack_pool< TAlloc >::deallocate(), and copp::stack_pool< TAlloc >::gc().
|
private |