From b1cfff4aeb9aceed8b18714f4029bd53d59f05ca Mon Sep 17 00:00:00 2001 From: Hallvard Furuseth Date: Sat, 10 Sep 2011 10:11:56 +0200 Subject: [PATCH] Add mdb.c:txnid_t for readability. Maybe later we'll test txnid wraparound with it defined to ushort. --- libraries/libmdb/mdb.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/libraries/libmdb/mdb.c b/libraries/libmdb/mdb.c index 1a539ba..0c1329e 100644 --- a/libraries/libmdb/mdb.c +++ b/libraries/libmdb/mdb.c @@ -168,6 +168,11 @@ */ typedef ULONG pgno_t; + /** A transaction ID. + * See struct MDB_txn.mt_txnid for details. + */ +typedef ULONG txnid_t; + /** @defgroup debug Debug Macros * @{ */ @@ -382,7 +387,7 @@ typedef struct MDB_rxbody { * started from so we can avoid overwriting any data used in that * particular version. */ - ULONG mrb_txnid; + txnid_t mrb_txnid; /** The process ID of the process owning this reader txn. */ pid_t mrb_pid; /** The thread ID of the thread owning this txn. */ @@ -431,7 +436,7 @@ typedef struct MDB_txbody { * This is recorded here only for convenience; the value can always * be determined by reading the main database meta pages. */ - ULONG mtb_txnid; + txnid_t mtb_txnid; /** The number of slots that have been used in the reader table. * This always records the maximum count, it is not decremented * when readers release their slots. @@ -641,7 +646,7 @@ typedef struct MDB_meta { /** Any persistent environment flags. @ref mdb_env */ #define mm_flags mm_dbs[0].md_flags pgno_t mm_last_pg; /**< last used page in file */ - ULONG mm_txnid; /**< txnid that committed this page */ + txnid_t mm_txnid; /**< txnid that committed this page */ } MDB_meta; /** Auxiliary DB info. @@ -669,7 +674,7 @@ struct MDB_txn { * Only committed write transactions increment the ID. If a transaction * aborts, the ID may be re-used by the next writer. */ - ULONG mt_txnid; + txnid_t mt_txnid; MDB_env *mt_env; /**< the DB environment */ /** The list of pages that became unused during this transaction. * This is an #IDL. @@ -754,7 +759,7 @@ typedef struct MDB_oldpages { */ struct MDB_oldpages *mo_next; /** The ID of the transaction in which these pages were freed. */ - ULONG mo_txnid; + txnid_t mo_txnid; /** An #IDL of the pages */ pgno_t mo_pages[1]; /* dynamic */ } MDB_oldpages; @@ -966,7 +971,7 @@ mdb_alloc_page(MDB_cursor *mc, int num) /* See if there's anything in the free DB */ MDB_cursor m2; MDB_node *leaf; - ULONG *kptr, oldest; + txnid_t *kptr, oldest; m2.mc_txn = txn; m2.mc_dbi = FREE_DBI; @@ -974,13 +979,13 @@ mdb_alloc_page(MDB_cursor *mc, int num) m2.mc_flags = 0; mdb_search_page(&m2, NULL, 0); leaf = NODEPTR(m2.mc_pg[m2.mc_top], 0); - kptr = (ULONG *)NODEKEY(leaf); + kptr = (txnid_t *)NODEKEY(leaf); { unsigned int i; oldest = txn->mt_txnid - 1; for (i=0; imt_env->me_txns->mti_numreaders; i++) { - ULONG mr = txn->mt_env->me_txns->mti_readers[i].mr_txnid; + txnid_t mr = txn->mt_env->me_txns->mti_readers[i].mr_txnid; if (mr && mr < oldest) oldest = mr; } @@ -1374,7 +1379,7 @@ mdb_txn_commit(MDB_txn *txn) #endif /* write to last page of freeDB */ key.mv_size = sizeof(pgno_t); - key.mv_data = (char *)&txn->mt_txnid; + key.mv_data = &txn->mt_txnid; data.mv_data = txn->mt_free_pgs; /* The free list can still grow during this call, * despite the pre-emptive touches above. So check @@ -1397,7 +1402,7 @@ mdb_txn_commit(MDB_txn *txn) mop = env->me_pghead; key.mv_size = sizeof(pgno_t); - key.mv_data = (char *)&mop->mo_txnid; + key.mv_data = &mop->mo_txnid; data.mv_size = MDB_IDL_SIZEOF(mop->mo_pages); data.mv_data = mop->mo_pages; mdb_cursor_put(&mc, &key, &data, 0);