Squid internals Memory Pools (src/MemPool.c) (ctd.) How it works Each MemPool attempts to keep a certain amount of memory allocated but not used ("idle") If no memory is free for use, a new block is allocated using xcalloc() and added to the MemPool list. Memory is only freed if there is enough idle memory to make up the configured idle memory limit