Move the freeing of the spilled pages list inside the protection of the
transaction mutex so there is no race condition with another transaction
txn->mt_numdbs = 0;
txn->mt_flags = MDB_TXN_FINISHED;
+ mdb_midl_free(txn->mt_spill_pgs);
+#if OVERFLOW_NOTYET
+ mdb_mid2l_free(txn->mt_dirty_ovs);
+#endif
if (!txn->mt_parent) {
mdb_midl_shrink(&txn->mt_free_pgs);
env->me_free_pgs = txn->mt_free_pgs;
mdb_midl_free(txn->mt_free_pgs);
free(txn->mt_u.dirty_list);
}
- mdb_midl_free(txn->mt_spill_pgs);
-#if OVERFLOW_NOTYET
- mdb_mid2l_free(txn->mt_dirty_ovs);
-#endif
mdb_midl_free(pghead);
}