|
Squid Web Cache master
|
#include <Pool.h>
Public Member Functions | |
| MemPools () | |
| void | flushMeters () |
| Mem::Allocator * | create (const char *, size_t) |
| void | setIdleLimit (const ssize_t newLimit) |
| ssize_t | idleLimit () const |
| void | clean (time_t maxage) |
| void | setDefaultPoolChunking (bool const &) |
Static Public Member Functions | |
| static MemPools & | GetInstance () |
Public Attributes | |
| std::list< Mem::Allocator * > | pools |
| bool | defaultIsChunked = false |
Private Attributes | |
| ssize_t | idleLimit_ = (2 << 20) |
| MemPools::MemPools | ( | ) |
| void MemPools::clean | ( | time_t | maxage | ) |
TODO: DOCS: Re-write this shorter!
| maxage | Release all totally idle chunks that have not been referenced for maxage seconds. |
Definition at line 105 of file Pool.cc.
References Mem::Meter::currentLevel(), flushMeters(), Mem::PoolMeter::idle, idleLimit(), pools, and TheMeter.
Referenced by Mem::CleanIdlePools(), and memClean().
| Mem::Allocator * MemPools::create | ( | const char * | label, |
| size_t | obj_size | ||
| ) |
Create an allocator with given name to allocate fixed-size objects of the specified size.
Definition at line 47 of file Pool.cc.
References defaultIsChunked, and pools.
Referenced by Mem::AllocatorProxy::getAllocator().
| void MemPools::flushMeters | ( | ) |
Definition at line 72 of file Pool.cc.
References Mem::PoolMeter::alloc, Mem::Meter::currentLevel(), Mem::PoolMeter::flush(), Mem::PoolMeter::gb_allocated, Mem::PoolMeter::gb_freed, Mem::PoolMeter::gb_saved, Mem::PoolMeter::idle, Mem::PoolMeter::inuse, pools, and TheMeter.
Referenced by clean(), and Mem::GlobalStats().
|
static |
Definition at line 27 of file Pool.cc.
References MemPools().
Referenced by Mem::CleanIdlePools(), MemPoolMalloc::deallocate(), Mem::AllocatorProxy::getAllocator(), Mem::GlobalStats(), memClean(), memConfigure(), and Mem::Report().
|
inline |
Limits the cumulative size of allocated (but unused) memory in all pools. Initial value is 2MB until first configuration, See squid.conf memory_pools_limit directive.
Definition at line 80 of file Pool.h.
References idleLimit_.
Referenced by clean().
| void MemPools::setDefaultPoolChunking | ( | bool const & | aBool | ) |
Definition at line 63 of file Pool.cc.
References defaultIsChunked.
|
inline |
Sets upper limit in bytes to amount of free ram kept in pools. This is not strict upper limit, but a hint. When MemPools are over this limit, deallocate attempts to release memory to the system instead of pooling.
Definition at line 78 of file Pool.h.
References idleLimit_.
Referenced by memClean(), and memConfigure().
| bool MemPools::defaultIsChunked = false |
Definition at line 113 of file Pool.h.
Referenced by MemPools(), create(), and setDefaultPoolChunking().
|
private |
Limits the cumulative size of allocated (but unused) memory in all pools. Initial value is 2MB until first configuration, See squid.conf memory_pools_limit directive.
Definition at line 119 of file Pool.h.
Referenced by idleLimit(), and setIdleLimit().
| std::list<Mem::Allocator *> MemPools::pools |
Definition at line 112 of file Pool.h.
Referenced by clean(), create(), flushMeters(), Mem::GlobalStats(), and Mem::Report().