From ab8fa36033b7617d7557e12a0d96f956ae155052 Mon Sep 17 00:00:00 2001 From: Leo Yuriev Date: Mon, 24 Jul 2017 11:23:09 +0300 Subject: [PATCH] mdbx: refine mdbx_meta_ot() and dependents. Change-Id: I449d501f0c3710fdb906e01931e10300ab3b7c9d --- src/mdbx.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/mdbx.c b/src/mdbx.c index 7668e608..83d41a23 100644 --- a/src/mdbx.c +++ b/src/mdbx.c @@ -1402,9 +1402,9 @@ static __inline uint64_t mdbx_meta_sign(const MDBX_meta *meta) { enum meta_choise_mode { prefer_last, prefer_noweak, prefer_steady }; -static __inline bool mdbx_meta_ot(const MDBX_env *env, const MDBX_meta *a, - const MDBX_meta *b, - const enum meta_choise_mode mode) { +static __inline bool mdbx_meta_ot(const enum meta_choise_mode mode, + const MDBX_env *env, const MDBX_meta *a, + const MDBX_meta *b) { mdbx_jitter4testing(true); txnid_t txnid_a = mdbx_meta_txnid_fluid(env, a); txnid_t txnid_b = mdbx_meta_txnid_fluid(env, b); @@ -1458,43 +1458,43 @@ static int mdbx_meta_eq_mask(const MDBX_env *env) { return rc; } -static __inline MDBX_meta *mdbx_meta_recent(const MDBX_env *env, MDBX_meta *a, - MDBX_meta *b, - const enum meta_choise_mode mode) { - const bool a_older_that_b = mdbx_meta_ot(env, a, b, mode); +static __inline MDBX_meta *mdbx_meta_recent(const enum meta_choise_mode mode, + const MDBX_env *env, MDBX_meta *a, + MDBX_meta *b) { + const bool a_older_that_b = mdbx_meta_ot(mode, env, a, b); mdbx_assert(env, !mdbx_meta_eq(env, a, b)); return a_older_that_b ? b : a; } -static __inline MDBX_meta *mdbx_meta_ancient(const MDBX_env *env, MDBX_meta *a, - MDBX_meta *b, - const enum meta_choise_mode mode) { - const bool a_older_that_b = mdbx_meta_ot(env, a, b, mode); +static __inline MDBX_meta *mdbx_meta_ancient(const enum meta_choise_mode mode, + const MDBX_env *env, MDBX_meta *a, + MDBX_meta *b) { + const bool a_older_that_b = mdbx_meta_ot(mode, env, a, b); mdbx_assert(env, !mdbx_meta_eq(env, a, b)); return a_older_that_b ? a : b; } static __inline MDBX_meta * -mdbx_meta_mostrecent(const MDBX_env *env, const enum meta_choise_mode mode) { +mdbx_meta_mostrecent(const enum meta_choise_mode mode, const MDBX_env *env) { MDBX_meta *m0 = METAPAGE(env, 0); MDBX_meta *m1 = METAPAGE(env, 1); MDBX_meta *m2 = METAPAGE(env, 2); - MDBX_meta *head = mdbx_meta_recent(env, m0, m1, mode); - head = mdbx_meta_recent(env, head, m2, mode); + MDBX_meta *head = mdbx_meta_recent(mode, env, m0, m1); + head = mdbx_meta_recent(mode, env, head, m2); return head; } static __hot MDBX_meta *mdbx_meta_steady(const MDBX_env *env) { - return mdbx_meta_mostrecent(env, prefer_steady); + return mdbx_meta_mostrecent(prefer_steady, env); } static __hot MDBX_meta *mdbx_meta_head(const MDBX_env *env) { - return mdbx_meta_mostrecent(env, prefer_last); + return mdbx_meta_mostrecent(prefer_last, env); } static __hot txnid_t mdbx_reclaiming_detent(const MDBX_env *env) { - MDBX_meta *meta = mdbx_meta_mostrecent(env, prefer_noweak); + MDBX_meta *meta = mdbx_meta_mostrecent(prefer_noweak, env); return mdbx_meta_txnid_stable(env, meta); } @@ -3784,7 +3784,7 @@ static int __cold mdbx_read_header(MDBX_env *env, MDBX_meta *meta) { continue; } - if (mdbx_meta_ot(env, meta, &page.mp_meta, true)) { + if (mdbx_meta_ot(prefer_steady, env, meta, &page.mp_meta)) { *meta = page.mp_meta; if (META_IS_WEAK(meta)) loop_limit += 1; /* LY: should re-read to hush race with update */ @@ -3947,12 +3947,12 @@ static int mdbx_sync_locked(MDBX_env *env, unsigned flags, return MDBX_SUCCESS; } } else if (head == meta0) - target = mdbx_meta_ancient(env, meta1, meta2, true); + target = mdbx_meta_ancient(prefer_steady, env, meta1, meta2); else if (head == meta1) - target = mdbx_meta_ancient(env, meta0, meta2, true); + target = mdbx_meta_ancient(prefer_steady, env, meta0, meta2); else { mdbx_assert(env, head == meta2); - target = mdbx_meta_ancient(env, meta0, meta1, true); + target = mdbx_meta_ancient(prefer_steady, env, meta0, meta1); } /* LY: step#2 - update meta-page. */