mdbx: merge branch 'master' into devel.

Change-Id: Ib1d07cf6eb2e4c76b3be969b28bf2317cb326835
This commit is contained in:
Leonid Yuriev 2020-12-03 18:42:10 +03:00
commit 90309ec0bf
4 changed files with 26 additions and 9 deletions

View File

@ -137,6 +137,7 @@ calloc
cas
casename
cassert
castis
castortech
cattr
cbegin
@ -1391,6 +1392,7 @@ rw
samedata
samelength
SAMSUNG
sasgas
savailable
scalability
sched

View File

@ -30,3 +30,4 @@ Contributors
- Sebastien Launay <sebastien@slaunay.fr>
- Vladimir Romanov <vromanov@gmail.com>
- Zano Foundation <crypto.sowle@gmail.com>
- 장세연 <sasgas@castis.com>

View File

@ -3,6 +3,7 @@ ChangeLog
## v0.9.3 (in development)
TODO:
- Engage new terminology (https://github.com/erthink/libmdbx/issues/137).
- Rework/speedup the implementation of the dirty page list (lazy compactification, lazy sorting via merge).
- Resolve few TODOs (https://github.com/erthink/libmdbx/issues/123, https://github.com/erthink/libmdbx/issues/124,
@ -11,10 +12,25 @@ ChangeLog
- Finalize C++ API (few typos and trivia bugs are still likely for now).
- Packages for ROSA Linux, ALT Linux, Fedora/RHEL, Debian/Ubuntu.
Acknowledgements:
- Mahlon E. Smith (http://www.martini.nu/) for FreeBSD port of libmdbx.
- 장세연 (http://www.castis.com) for bug fixing and PR.
Removed options and features:
- Drop `MDBX_HUGE_TRANSACTIONS` build-option (now no longer required).
- Drop `MDBX_HUGE_TRANSACTIONS` build-option (now no longer required).
Added features:
- Package for FreeBSD is available now by Mahlon E. Smith.
- New API functions to get/set various options (https://github.com/erthink/libmdbx/issues/128).
- Unlimited/Dynamic size of retired and dirty page lists (https://github.com/erthink/libmdbx/issues/123).
Fixes:
- Fixed 4-byte aligned access to 64-bit integers.
- Fixed missing cleanup (null assigned) in the C++ commit/abort (https://github.com/erthink/libmdbx/pull/143).
## v0.9.2 scheduled at 2020-11-27

View File

@ -1314,20 +1314,18 @@ txn_managed::~txn_managed() noexcept {
void txn_managed::abort() {
const error err = static_cast<MDBX_error_t>(::mdbx_txn_abort(handle_));
if (MDBX_UNLIKELY(err.code() != MDBX_SUCCESS)) {
if (err.code() != MDBX_THREAD_MISMATCH)
handle_ = nullptr;
if (MDBX_LIKELY(err.code() != MDBX_THREAD_MISMATCH))
handle_ = nullptr;
if (MDBX_UNLIKELY(err.code() != MDBX_SUCCESS))
err.throw_exception();
}
}
void txn_managed::commit() {
const error err = static_cast<MDBX_error_t>(::mdbx_txn_commit(handle_));
if (MDBX_UNLIKELY(err.code() != MDBX_SUCCESS)) {
if (err.code() != MDBX_THREAD_MISMATCH)
handle_ = nullptr;
if (MDBX_LIKELY(err.code() != MDBX_THREAD_MISMATCH))
handle_ = nullptr;
if (MDBX_UNLIKELY(err.code() != MDBX_SUCCESS))
err.throw_exception();
}
}
//------------------------------------------------------------------------------