Add MDB_NORDLOCK to omit all reader table usage

Calling app wants to manage its own locking.
vmware
Howard Chu 11 years ago
parent e3f6c152c5
commit f739940547
  1. 2
      libraries/liblmdb/lmdb.h
  2. 2
      libraries/liblmdb/mdb.c

@ -269,6 +269,8 @@ typedef void (MDB_rel_func)(MDB_val *item, void *oldptr, void *newptr, void *rel
#define MDB_MAPASYNC 0x100000
/** tie reader locktable slots to #MDB_txn objects instead of to threads */
#define MDB_NOTLS 0x200000
/** don't use reader locktable at all, caller must manage read/write concurrency */
#define MDB_NORDLOCK 0x400000
/** @} */
/** @defgroup mdb_dbi_open Database Flags

@ -3983,7 +3983,7 @@ mdb_env_open(MDB_env *env, const char *path, unsigned int flags, mdb_mode_t mode
goto leave;
}
if (F_ISSET(flags, MDB_RDONLY)) {
if ((flags & (MDB_RDONLY|MDB_NORDLOCK)) == MDB_RDONLY) {
rc = mdb_env_setup_locks(env, lpath, mode, &excl);
if (rc)
goto leave;

Loading…
Cancel
Save