mirror of
https://github.com/isar/libmdbx.git
synced 2025-01-02 01:04:13 +08:00
mdbx: rename MDBX_CACHE_METAPTR
build-time option.
This commit is contained in:
parent
12d2879a9f
commit
149e708830
45
src/core.c
45
src/core.c
@ -5743,12 +5743,12 @@ constmeta_txnid(const MDBX_env *env, const MDBX_meta *meta) {
|
||||
}
|
||||
|
||||
static __inline void meta_cache_clear(MDBX_env *env) {
|
||||
#if MDBX_CACHE_METAS
|
||||
#if MDBX_CACHE_METAPTR
|
||||
env->cache_last_meta = nullptr;
|
||||
env->cache_steady_meta = nullptr;
|
||||
#else
|
||||
(void)env;
|
||||
#endif /* MDBX_CACHE_METAS */
|
||||
#endif /* MDBX_CACHE_METAPTR */
|
||||
}
|
||||
|
||||
static __inline txnid_t meta_txnid(const MDBX_env *env,
|
||||
@ -5888,44 +5888,41 @@ meta_mostrecent(const enum meta_choise_mode mode, const MDBX_env *env) {
|
||||
|
||||
static volatile const MDBX_meta *meta_prefer_steady(const MDBX_env *env) {
|
||||
return
|
||||
#if MDBX_CACHE_METAS
|
||||
#if MDBX_CACHE_METAPTR
|
||||
((MDBX_env *)env)->cache_steady_meta =
|
||||
#endif /* MDBX_CACHE_METAS */
|
||||
#endif /* MDBX_CACHE_METAPTR */
|
||||
meta_mostrecent(prefer_steady, env);
|
||||
}
|
||||
|
||||
MDBX_NOTHROW_PURE_FUNCTION static const MDBX_meta *
|
||||
constmeta_prefer_steady(const MDBX_env *env) {
|
||||
#if MDBX_CACHE_METAS
|
||||
mdbx_assert(env, !env->cache_steady_meta ||
|
||||
env->cache_steady_meta ==
|
||||
meta_mostrecent(prefer_steady, env));
|
||||
return (const MDBX_meta *)(env->cache_steady_meta ? env->cache_steady_meta :
|
||||
#else
|
||||
return (const MDBX_meta *)(
|
||||
#endif /* MDBX_CACHE_METAS */
|
||||
meta_prefer_steady(env));
|
||||
#if MDBX_CACHE_METAPTR
|
||||
if (likely(env->cache_steady_meta)) {
|
||||
mdbx_assert(env,
|
||||
env->cache_steady_meta == meta_mostrecent(prefer_steady, env));
|
||||
return (const MDBX_meta *)env->cache_steady_meta;
|
||||
}
|
||||
#endif /* MDBX_CACHE_METAPTR */
|
||||
return (const MDBX_meta *)meta_prefer_steady(env);
|
||||
}
|
||||
|
||||
static volatile const MDBX_meta *meta_prefer_last(const MDBX_env *env) {
|
||||
return
|
||||
#if MDBX_CACHE_METAS
|
||||
#if MDBX_CACHE_METAPTR
|
||||
((MDBX_env *)env)->cache_last_meta =
|
||||
#endif /* MDBX_CACHE_METAS */
|
||||
#endif /* MDBX_CACHE_METAPTR */
|
||||
meta_mostrecent(prefer_last, env);
|
||||
}
|
||||
|
||||
MDBX_NOTHROW_PURE_FUNCTION static const MDBX_meta *
|
||||
constmeta_prefer_last(const MDBX_env *env) {
|
||||
#if MDBX_CACHE_METAS
|
||||
mdbx_assert(env,
|
||||
!env->cache_last_meta ||
|
||||
env->cache_last_meta == meta_mostrecent(prefer_last, env));
|
||||
return (const MDBX_meta *)(env->cache_last_meta ? env->cache_last_meta :
|
||||
#else
|
||||
return (const MDBX_meta *)(
|
||||
#endif /* MDBX_CACHE_METAS */
|
||||
meta_prefer_last(env));
|
||||
#if MDBX_CACHE_METAPTR
|
||||
if (likely(env->cache_last_meta)) {
|
||||
mdbx_assert(env, env->cache_last_meta == meta_mostrecent(prefer_last, env));
|
||||
return (const MDBX_meta *)env->cache_last_meta;
|
||||
}
|
||||
#endif /* MDBX_CACHE_METAPTR */
|
||||
return (const MDBX_meta *)meta_prefer_last(env);
|
||||
}
|
||||
|
||||
static txnid_t mdbx_recent_committed_txnid(const MDBX_env *env) {
|
||||
|
@ -1189,10 +1189,10 @@ struct MDBX_env {
|
||||
|
||||
MDBX_txn *me_txn; /* current write transaction */
|
||||
mdbx_fastmutex_t me_dbi_lock;
|
||||
#if MDBX_CACHE_METAS
|
||||
#if MDBX_CACHE_METAPTR
|
||||
volatile const MDBX_meta *cache_last_meta;
|
||||
volatile const MDBX_meta *cache_steady_meta;
|
||||
#endif /* MDBX_CACHE_METAS */
|
||||
#endif /* MDBX_CACHE_METAPTR */
|
||||
MDBX_dbi me_numdbs; /* number of DBs opened */
|
||||
|
||||
MDBX_page *me_dp_reserve; /* list of malloc'ed blocks for re-use */
|
||||
|
@ -92,11 +92,11 @@
|
||||
#error MDBX_ENABLE_BIGFOOT must be defined as 0 or 1
|
||||
#endif /* MDBX_ENABLE_BIGFOOT */
|
||||
|
||||
#ifndef MDBX_CACHE_METAS
|
||||
#define MDBX_CACHE_METAS 0
|
||||
#elif !(MDBX_CACHE_METAS == 0 || MDBX_CACHE_METAS == 1)
|
||||
#error MDBX_CACHE_METAS must be defined as 0 or 1
|
||||
#endif /* MDBX_CACHE_METAS */
|
||||
#ifndef MDBX_CACHE_METAPTR
|
||||
#define MDBX_CACHE_METAPTR 0
|
||||
#elif !(MDBX_CACHE_METAPTR == 0 || MDBX_CACHE_METAPTR == 1)
|
||||
#error MDBX_CACHE_METAPTR must be defined as 0 or 1
|
||||
#endif /* MDBX_CACHE_METAPTR */
|
||||
|
||||
/** Controls use of POSIX madvise() hints and friends. */
|
||||
#ifndef MDBX_ENABLE_MADVISE
|
||||
|
Loading…
x
Reference in New Issue
Block a user