session->worker->srv->stat->connections_count);
r += snprintf (out_buf + r, sizeof (out_buf) - r, "Control connections count: %u" CRLF,
session->worker->srv->stat->control_connections_count);
+ r += snprintf (out_buf + r, sizeof (out_buf) - r, "Pools allocated: %ld" CRLF,
+ (long int)mem_st.pools_allocated);
+ r += snprintf (out_buf + r, sizeof (out_buf) - r, "Pools freed: %ld" CRLF,
+ (long int)mem_st.pools_freed);
r += snprintf (out_buf + r, sizeof (out_buf) - r, "Bytes allocated: %ld" CRLF,
(long int)mem_st.bytes_allocated);
r += snprintf (out_buf + r, sizeof (out_buf) - r, "Memory chunks allocated: %ld" CRLF,
new->first_pool = new->cur_pool;
new->destructors = NULL;
+ mem_pool_stat->pools_allocated ++;
+
return new;
}
STAT_UNLOCK ();
}
+ mem_pool_stat->pools_freed ++;
g_free (pool);
}
void
memory_pool_stat (memory_pool_stat_t *st)
{
+ st->pools_allocated = mem_pool_stat->pools_allocated;
+ st->pools_freed = mem_pool_stat->pools_freed;
+ st->shared_chunks_allocated = mem_pool_stat->shared_chunks_allocated;
st->bytes_allocated = mem_pool_stat->bytes_allocated;
st->chunks_allocated = mem_pool_stat->chunks_allocated;
st->shared_chunks_allocated = mem_pool_stat->shared_chunks_allocated;
* Statistics structure
*/
typedef struct memory_pool_stat_s {
- memory_pool_ssize_t bytes_allocated; /**< bytes that are allocated with pool allocator */
+ memory_pool_ssize_t pools_allocated; /**< total number of allocated pools */
+ memory_pool_ssize_t pools_freed; /**< number of freed pools */
+ memory_pool_ssize_t bytes_allocated; /**< bytes that are allocated with pool allocator */
memory_pool_ssize_t chunks_allocated; /**< number of chunks that are allocated */
- memory_pool_ssize_t shared_chunks_allocated; /**< shared chunks allocated */
+ memory_pool_ssize_t shared_chunks_allocated; /**< shared chunks allocated */
memory_pool_ssize_t chunks_freed; /**< chunks freed */
} memory_pool_stat_t;