mdbx: add internal txn_basis_snapshot().

This commit is contained in:
Леонид Юрьев (Leonid Yuriev)
2025-09-07 00:04:01 +03:00
parent fc4c02511d
commit cd27aa017f
2 changed files with 9 additions and 1 deletions

View File

@@ -503,6 +503,14 @@ static inline int check_txn_rw(const MDBX_txn *txn, int bad_bits) {
return check_txn(txn, (bad_bits | MDBX_TXN_RDONLY) & ~MDBX_TXN_PARKED);
}
MDBX_NOTHROW_CONST_FUNCTION static inline txnid_t txn_basis_snapshot(const MDBX_txn *txn) {
STATIC_ASSERT((MDBX_TXN_RDONLY >> 17) == 1);
STATIC_ASSERT((xMDBX_TXNID_STEP >> (xMDBX_TXNID_STEP == 2)) == 1);
const txnid_t committed_txnid = txn->txnid + (xMDBX_TXNID_STEP >> (xMDBX_TXNID_STEP == 2)) - ((txn->flags >> 17) & 1);
tASSERT(txn, committed_txnid == ((txn->flags & MDBX_TXN_RDONLY) ? txn->txnid : txn->txnid - xMDBX_TXNID_STEP));
return committed_txnid;
}
/*----------------------------------------------------------------------------*/
MDBX_INTERNAL void mincore_clean_cache(const MDBX_env *const env);