mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-30 11:39:34 -05:00
Merge remote-tracking branch 'origin/mdb.RE/0.9'
This commit is contained in:
commit
0ce23640b6
2 changed files with 19 additions and 3 deletions
|
|
@ -1,5 +1,7 @@
|
|||
LMDB 0.9 Change Log
|
||||
|
||||
LMDB 0.9.26 Engineering
|
||||
|
||||
LMDB 0.9.25 Release (2020/01/30)
|
||||
ITS#9068 fix mdb_dump/load backslashes in printable content
|
||||
ITS#9118 add MAP_NOSYNC for FreeBSD
|
||||
|
|
|
|||
|
|
@ -124,7 +124,10 @@ typedef SSIZE_T ssize_t;
|
|||
#include <resolv.h> /* defines BYTE_ORDER on HPUX and Solaris */
|
||||
#endif
|
||||
|
||||
#if defined(__APPLE__) || defined (BSD) || defined(__FreeBSD_kernel__)
|
||||
#if defined(__FreeBSD__) && defined(__FreeBSD_version) && __FreeBSD_version >= 1100110
|
||||
# define MDB_USE_POSIX_MUTEX 1
|
||||
# define MDB_USE_ROBUST 1
|
||||
#elif defined(__APPLE__) || defined (BSD) || defined(__FreeBSD_kernel__)
|
||||
# define MDB_USE_POSIX_SEM 1
|
||||
# define MDB_FDATASYNC fsync
|
||||
#elif defined(ANDROID)
|
||||
|
|
@ -1375,7 +1378,7 @@ static int mdb_page_split(MDB_cursor *mc, MDB_val *newkey, MDB_val *newdata,
|
|||
static int mdb_env_read_header(MDB_env *env, MDB_meta *meta);
|
||||
static MDB_meta *mdb_env_pick_meta(const MDB_env *env);
|
||||
static int mdb_env_write_meta(MDB_txn *txn);
|
||||
#ifdef MDB_USE_POSIX_MUTEX /* Drop unused excl arg */
|
||||
#if defined(MDB_USE_POSIX_MUTEX) && !defined(MDB_ROBUST_SUPPORTED) /* Drop unused excl arg */
|
||||
# define mdb_env_close0(env, excl) mdb_env_close1(env)
|
||||
#endif
|
||||
static void mdb_env_close0(MDB_env *env, int excl);
|
||||
|
|
@ -5133,6 +5136,17 @@ mdb_env_close0(MDB_env *env, int excl)
|
|||
sem_unlink(env->me_txns->mti_wmname);
|
||||
}
|
||||
}
|
||||
#elif defined(MDB_ROBUST_SUPPORTED)
|
||||
/* If we have the filelock: If we are the
|
||||
* only remaining user, clean up robust
|
||||
* mutexes.
|
||||
*/
|
||||
if (excl == 0)
|
||||
mdb_env_excl_lock(env, &excl);
|
||||
if (excl > 0) {
|
||||
pthread_mutex_destroy(env->me_txns->mti_rmutex);
|
||||
pthread_mutex_destroy(env->me_txns->mti_wmutex);
|
||||
}
|
||||
#endif
|
||||
munmap((void *)env->me_txns, (env->me_maxreaders-1)*sizeof(MDB_reader)+sizeof(MDB_txninfo));
|
||||
}
|
||||
|
|
@ -6785,7 +6799,7 @@ more:
|
|||
offset *= 4; /* space for 4 more */
|
||||
break;
|
||||
}
|
||||
/* FALLTHRU: Big enough MDB_DUPFIXED sub-page */
|
||||
/* FALLTHRU */ /* Big enough MDB_DUPFIXED sub-page */
|
||||
case MDB_CURRENT:
|
||||
fp->mp_flags |= P_DIRTY;
|
||||
COPY_PGNO(fp->mp_pgno, mp->mp_pgno);
|
||||
|
|
|
|||
Loading…
Reference in a new issue