Move use_pool() to mempool.c and rename to mempool_enabled()
The only user is in hashmap.c, but it's a mempool thing.
This commit is contained in:
parent
6939fb9eb4
commit
7c48ea0280
|
@ -6,7 +6,6 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "alloc-util.h"
|
#include "alloc-util.h"
|
||||||
#include "env-util.h"
|
|
||||||
#include "fileio.h"
|
#include "fileio.h"
|
||||||
#include "hashmap.h"
|
#include "hashmap.h"
|
||||||
#include "macro.h"
|
#include "macro.h"
|
||||||
|
@ -767,24 +766,12 @@ static void reset_direct_storage(HashmapBase *h) {
|
||||||
memset(p, DIB_RAW_INIT, sizeof(dib_raw_t) * hi->n_direct_buckets);
|
memset(p, DIB_RAW_INIT, sizeof(dib_raw_t) * hi->n_direct_buckets);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool use_pool(void) {
|
|
||||||
static int b = -1;
|
|
||||||
|
|
||||||
if (!is_main_thread())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (b < 0)
|
|
||||||
b = getenv_bool("SYSTEMD_MEMPOOL") != 0;
|
|
||||||
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct HashmapBase *hashmap_base_new(const struct hash_ops *hash_ops, enum HashmapType type HASHMAP_DEBUG_PARAMS) {
|
static struct HashmapBase *hashmap_base_new(const struct hash_ops *hash_ops, enum HashmapType type HASHMAP_DEBUG_PARAMS) {
|
||||||
HashmapBase *h;
|
HashmapBase *h;
|
||||||
const struct hashmap_type_info *hi = &hashmap_type_info[type];
|
const struct hashmap_type_info *hi = &hashmap_type_info[type];
|
||||||
bool up;
|
bool up;
|
||||||
|
|
||||||
up = use_pool();
|
up = mempool_enabled();
|
||||||
|
|
||||||
h = up ? mempool_alloc0_tile(hi->mempool) : malloc0(hi->head_size);
|
h = up ? mempool_alloc0_tile(hi->mempool) : malloc0(hi->head_size);
|
||||||
if (!h)
|
if (!h)
|
||||||
|
|
|
@ -3,8 +3,10 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "env-util.h"
|
||||||
#include "macro.h"
|
#include "macro.h"
|
||||||
#include "mempool.h"
|
#include "mempool.h"
|
||||||
|
#include "process-util.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
struct pool {
|
struct pool {
|
||||||
|
@ -70,8 +72,19 @@ void mempool_free_tile(struct mempool *mp, void *p) {
|
||||||
mp->freelist = p;
|
mp->freelist = p;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if VALGRIND
|
bool mempool_enabled(void) {
|
||||||
|
static int b = -1;
|
||||||
|
|
||||||
|
if (!is_main_thread())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (b < 0)
|
||||||
|
b = getenv_bool("SYSTEMD_MEMPOOL") != 0;
|
||||||
|
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if VALGRIND
|
||||||
void mempool_drop(struct mempool *mp) {
|
void mempool_drop(struct mempool *mp) {
|
||||||
struct pool *p = mp->first_pool;
|
struct pool *p = mp->first_pool;
|
||||||
while (p) {
|
while (p) {
|
||||||
|
@ -81,5 +94,4 @@ void mempool_drop(struct mempool *mp) {
|
||||||
p = n;
|
p = n;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -22,6 +22,8 @@ static struct mempool pool_name = { \
|
||||||
.at_least = alloc_at_least, \
|
.at_least = alloc_at_least, \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool mempool_enabled(void);
|
||||||
|
|
||||||
#if VALGRIND
|
#if VALGRIND
|
||||||
void mempool_drop(struct mempool *mp);
|
void mempool_drop(struct mempool *mp);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue