}
session = g_malloc0(sizeof(struct rspamd_controller_session));
- session->pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- "csession", 0);
+ session->pool = rspamd_mempool_new_short_lived("csession");
session->ctx = ctx;
session->cfg = ctx->cfg;
session->lang_det = ctx->lang_det;
struct rspamd_config *cfg;
rspamd_mempool_t *pool;
- pool = rspamd_mempool_new(8 * 1024 * 1024, "cfg", 0);
+ pool = rspamd_mempool_new_long_lived(8 * 1024 * 1024, "cfg");
cfg = rspamd_mempool_alloc0_type(pool, struct rspamd_config);
/* Allocate larger pool for cfg */
cfg->cfg_pool = pool;
bk = g_malloc0(sizeof(*bk));
bk->path = g_strdup(path);
bk->expired = 0;
- bk->pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- "fuzzy_backend", 0);
+ bk->pool = rspamd_mempool_new_long_lived(rspamd_mempool_suggest_size(),
+ "fuzzy_backend");
bk->db = rspamd_sqlite3_open_or_create(bk->pool, bk->path,
create_tables_sql, 1, err);
rspamd_mempool_t *pool;
if (map) {
- pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- map->tag, 0);
+ pool = rspamd_mempool_new_long_lived(rspamd_mempool_suggest_size(),
+ map->tag);
}
else {
- pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- NULL, 0);
+ pool = rspamd_mempool_new_long_lived(rspamd_mempool_suggest_size(),
+ "map");
}
htb = rspamd_mempool_alloc0_type(pool, struct rspamd_hash_map_helper);
const char *name = "unnamed";
if (map) {
- pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- map->tag, 0);
+ pool = rspamd_mempool_new_long_lived(rspamd_mempool_suggest_size(),
+ map->tag);
name = map->name;
}
else {
- pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- NULL, 0);
+ pool = rspamd_mempool_new_long_lived(rspamd_mempool_suggest_size(),
+ "radix_map");
}
r = rspamd_mempool_alloc0_type(pool, struct rspamd_radix_map_helper);
struct rspamd_regexp_map_helper *re_map;
rspamd_mempool_t *pool;
- pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- map->tag, 0);
+ pool = rspamd_mempool_new_long_lived(rspamd_mempool_suggest_size(),
+ map->tag);
re_map = rspamd_mempool_alloc0_type(pool, struct rspamd_regexp_map_helper);
re_map->pool = pool;
priv->parser.buf = rspamd_fstring_sized_new(RSPAMD_MILTER_MESSAGE_CHUNK + 5);
priv->event_loop = ev_base;
priv->state = RSPAMD_MILTER_READ_MORE;
- priv->pool = rspamd_mempool_new(rspamd_mempool_suggest_size(), "milter", 0);
+ priv->pool = rspamd_mempool_new_short_lived("milter");
priv->discard_on_reject = milter_ctx->discard_on_reject;
priv->quarantine_on_reject = milter_ctx->quarantine_on_reject;
priv->ev.timeout = timeout;
unsigned int flags = RSPAMD_TASK_FLAG_LEARN_AUTO;
if (pool == NULL) {
- task_pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- "task", debug_mem ? RSPAMD_MEMPOOL_DEBUG : 0);
+ task_pool = rspamd_mempool_new_(rspamd_mempool_suggest_size_(G_STRLOC),
+ "task",
+ RSPAMD_MEMPOOL_SHORT_LIVED | (debug_mem ? RSPAMD_MEMPOOL_DEBUG : 0),
+ G_STRLOC);
flags |= RSPAMD_TASK_FLAG_OWN_POOL;
}
else {
return NULL;
}
- tree->pool = rspamd_mempool_new(rspamd_mempool_suggest_size(), NULL, 0);
+ tree->pool = rspamd_mempool_new_long_lived(rspamd_mempool_suggest_size(), "radix");
tree->size = 0;
tree->duplicates = 0;
tree->tree = btrie_init(tree->pool);
ctx = g_malloc0(sizeof(*ctx));
memcpy(&ctx->limits, &default_limits, sizeof(ctx->limits));
- ctx->pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- "upstreams", 0);
+ ctx->pool = rspamd_mempool_new_long_lived(rspamd_mempool_suggest_size(),
+ "upstreams");
ctx->upstreams = g_queue_new();
REF_INIT_RETAIN(ctx, rspamd_upstream_ctx_dtor);
lua_mempool_create(lua_State *L)
{
LUA_TRACE_POINT;
- struct memory_pool_s *mempool = rspamd_mempool_new(
- rspamd_mempool_suggest_size(), "lua", 0),
+ struct memory_pool_s *mempool = rspamd_mempool_new_short_lived("lua"),
**pmempool;
if (mempool) {
}
if (start != NULL) {
- pool = rspamd_mempool_new(rspamd_mempool_suggest_size(), NULL, 0);
+ pool = rspamd_mempool_new_short_lived("lua_parser");
in = g_byte_array_sized_new(len);
g_byte_array_append(in, start, len);
}
}
else {
- pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- "lua parsers", 0);
+ pool = rspamd_mempool_new_short_lived("lua_parsers");
own_pool = TRUE;
}
void luaopen_regexp(lua_State *L)
{
if (!regexp_static_pool) {
- regexp_static_pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- "regexp_lua_pool", 0);
+ regexp_static_pool = rspamd_mempool_new_long_lived(rspamd_mempool_suggest_size(),
+ "regexp_lua_pool");
}
rspamd_lua_new_class(L, rspamd_regexp_classname, regexplib_m);
RSPAMD_CONSTRUCTOR(rspamd_urls_static_pool_ctor)
{
- static_lua_url_pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- "static_lua_url", 0);
+ static_lua_url_pool = rspamd_mempool_new_long_lived(rspamd_mempool_suggest_size(),
+ "static_lua_url");
}
RSPAMD_DESTRUCTOR(rspamd_urls_static_pool_dtor)
return luaL_error(L, "invalid command type: %s", cmd_name);
}
- rspamd_mempool_t *pool = rspamd_mempool_new(
- rspamd_mempool_suggest_size(), "lua_control", 0);
+ rspamd_mempool_t *pool = rspamd_mempool_new_short_lived("lua_control");
cbd = rspamd_mempool_alloc0(pool, sizeof(*cbd));
cbd->pool = pool;
cbd->event_loop = event_loop;
fuzzy_module_ctx = rspamd_mempool_alloc0(cfg->cfg_pool,
sizeof(struct fuzzy_ctx));
- fuzzy_module_ctx->fuzzy_pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- NULL, 0);
+ fuzzy_module_ctx->fuzzy_pool = rspamd_mempool_new_long_lived(rspamd_mempool_suggest_size(),
+ "fuzzy");
/* TODO: this should match rules count actually */
fuzzy_module_ctx->keypairs_cache = rspamd_keypair_cache_new(32);
fuzzy_module_ctx->fuzzy_rules = g_ptr_array_new();
rspamd_main->cfg = cfg;
rspamd_main->pid = getpid();
rspamd_main->type = process_quark;
- rspamd_main->server_pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- "rspamadm", 0);
+ rspamd_main->server_pool = rspamd_mempool_new_long_lived(rspamd_mempool_suggest_size(),
+ "rspamadm");
rspamadm_fill_internal_commands(all_commands);
help_command.command_data = all_commands;
rspamd_main = (struct rspamd_main *) g_malloc0(sizeof(struct rspamd_main));
- rspamd_main->server_pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- "main", 0);
+ rspamd_main->server_pool = rspamd_mempool_new_long_lived(rspamd_mempool_suggest_size(),
+ "main");
rspamd_main->stat = rspamd_mempool_alloc0_shared_(rspamd_main->server_pool,
sizeof(struct rspamd_stat),
RSPAMD_ALIGNOF(struct rspamd_stat),
session->client_addr = NULL;
nsession->ctx = session->ctx;
nsession->worker = session->worker;
- nsession->pool = rspamd_mempool_new(rspamd_mempool_suggest_size(), "proxy", 0);
+ nsession->pool = rspamd_mempool_new_short_lived("proxy");
nsession->client_sock = session->client_sock;
session->client_sock = -1;
nsession->mirror_conns = g_ptr_array_sized_new(nsession->ctx->mirrors->len);
session->client_addr = addr;
session->mirror_conns = g_ptr_array_sized_new(ctx->mirrors->len);
- session->pool = rspamd_mempool_new(rspamd_mempool_suggest_size(),
- "proxy", 0);
+ session->pool = rspamd_mempool_new_short_lived("proxy");
session->ctx = ctx;
session->worker = worker;