diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt index 33c3830e..9df1607d 100644 --- a/.github/actions/spelling/expect.txt +++ b/.github/actions/spelling/expect.txt @@ -137,6 +137,7 @@ calloc cas casename cassert +castis castortech cattr cbegin @@ -1391,6 +1392,7 @@ rw samedata samelength SAMSUNG +sasgas savailable scalability sched diff --git a/AUTHORS b/AUTHORS index d050f2c0..ca419517 100644 --- a/AUTHORS +++ b/AUTHORS @@ -30,3 +30,4 @@ Contributors - Sebastien Launay - Vladimir Romanov - Zano Foundation +- 장세연 diff --git a/ChangeLog.md b/ChangeLog.md index 954988fc..38c15a4d 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -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 diff --git a/src/mdbx.c++ b/src/mdbx.c++ index 3e859798..73a222f3 100644 --- a/src/mdbx.c++ +++ b/src/mdbx.c++ @@ -1314,20 +1314,18 @@ txn_managed::~txn_managed() noexcept { void txn_managed::abort() { const error err = static_cast(::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_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(); - } } //------------------------------------------------------------------------------