diff options
Diffstat (limited to 'external')
-rw-r--r-- | external/db_drivers/liblmdb/mdb.c | 16 | ||||
-rw-r--r-- | external/easylogging++/easylogging++.h | 4 |
2 files changed, 11 insertions, 9 deletions
diff --git a/external/db_drivers/liblmdb/mdb.c b/external/db_drivers/liblmdb/mdb.c index 32e225163..d778037b0 100644 --- a/external/db_drivers/liblmdb/mdb.c +++ b/external/db_drivers/liblmdb/mdb.c @@ -1953,13 +1953,15 @@ static void mdb_cursor_unref(MDB_cursor *mc) { int i; - if (!mc->mc_snum || !mc->mc_pg[0] || IS_SUBP(mc->mc_pg[0])) - return; - for (i=0; i<mc->mc_snum; i++) - mdb_page_unref(mc->mc_txn, mc->mc_pg[i]); - if (mc->mc_ovpg) { - mdb_page_unref(mc->mc_txn, mc->mc_ovpg); - mc->mc_ovpg = 0; + if (mc->mc_txn->mt_rpages[0].mid) { + if (!mc->mc_snum || !mc->mc_pg[0] || IS_SUBP(mc->mc_pg[0])) + return; + for (i=0; i<mc->mc_snum; i++) + mdb_page_unref(mc->mc_txn, mc->mc_pg[i]); + if (mc->mc_ovpg) { + mdb_page_unref(mc->mc_txn, mc->mc_ovpg); + mc->mc_ovpg = 0; + } } mc->mc_snum = mc->mc_top = 0; mc->mc_pg[0] = NULL; diff --git a/external/easylogging++/easylogging++.h b/external/easylogging++/easylogging++.h index 3395c2cb2..d28152667 100644 --- a/external/easylogging++/easylogging++.h +++ b/external/easylogging++/easylogging++.h @@ -1104,8 +1104,8 @@ namespace el { ELPP_UNUSED(ms); # endif // ELPP_ASYNC_LOGGING } - typedef std::mutex Mutex; - typedef std::lock_guard<std::mutex> ScopedLock; + typedef std::recursive_mutex Mutex; + typedef std::lock_guard<std::recursive_mutex> ScopedLock; # endif // !ELPP_USE_STD_THREADING #else namespace internal { |