209f2926b8
This removes the tsd macros (which are used only for tsd_t in real builds). We break up the circular dependencies involving tsd. We also move all tsd access through getters and setters. This allows us to assert that we only touch data when tsd is in a valid state. We simplify the usages of the x macro trick, removing all the customizability (get/set, init, cleanup), moving the lifetime logic to tsd_init and tsd_cleanup. This lets us make initialization order independent of order within tsd_t.
23 lines
566 B
C
23 lines
566 B
C
#ifndef JEMALLOC_INTERNAL_RTREE_CTX_H
|
|
#define JEMALLOC_INTERNAL_RTREE_CTX_H
|
|
|
|
#include "jemalloc/internal/rtree_types.h"
|
|
|
|
typedef struct rtree_ctx_cache_elm_s rtree_ctx_cache_elm_t;
|
|
struct rtree_ctx_cache_elm_s {
|
|
uintptr_t leafkey;
|
|
rtree_leaf_elm_t *leaf;
|
|
};
|
|
|
|
typedef struct rtree_ctx_s rtree_ctx_t;
|
|
struct rtree_ctx_s {
|
|
/* Direct mapped cache. */
|
|
rtree_ctx_cache_elm_t cache[RTREE_CTX_NCACHE];
|
|
/* L2 LRU cache. */
|
|
rtree_ctx_cache_elm_t l2_cache[RTREE_CTX_NCACHE_L2];
|
|
};
|
|
|
|
void rtree_ctx_data_init(rtree_ctx_t *ctx);
|
|
|
|
#endif /* JEMALLOC_INTERNAL_RTREE_CTX_H */
|