Add MDB_NO_ROBUST to disable Robust Mutexes

vl32b
Howard Chu 9 years ago
parent 2ee9c4a30e
commit 2be6797534
  1. 1
      libraries/liblmdb/Makefile
  2. 20
      libraries/liblmdb/mdb.c

@ -13,6 +13,7 @@
# - MDB_FDATASYNC # - MDB_FDATASYNC
# - MDB_FDATASYNC_WORKS # - MDB_FDATASYNC_WORKS
# - MDB_USE_PWRITEV # - MDB_USE_PWRITEV
# - MDB_NO_ROBUST
# #
# There may be other macros in mdb.c of interest. You should # There may be other macros in mdb.c of interest. You should
# read mdb.c before changing any of them. # read mdb.c before changing any of them.

@ -252,7 +252,25 @@ union semun {
#define MDB_OWNERDEAD EOWNERDEAD /**< #LOCK_MUTEX0() result if dead owner */ #define MDB_OWNERDEAD EOWNERDEAD /**< #LOCK_MUTEX0() result if dead owner */
#endif #endif
#ifdef MDB_OWNERDEAD /* Android currently lacks Robust Mutex support */
#if defined(ANDROID) && defined(MDB_USE_POSIX_MUTEX)
#define MDB_NO_ROBUST 1
#endif
/** Some platforms define the EOWNERDEAD error code
* even though they don't support Robust Mutexes.
* Compile with -DMDB_NO_ROBUST, or use some other
* mechanism like -DMDB_USE_SYSV_SEM instead of
* -DMDB_USE_POSIX_MUTEX. (SysV semaphores are
* also Robust, but some systems don't support them
* either.)
*/
#ifndef MDB_NO_ROBUST
#define MDB_NO_ROBUST 0
#endif
#if defined(MDB_OWNERDEAD) && !(MDB_NO_ROBUST)
#define MDB_ROBUST_SUPPORTED 1 #define MDB_ROBUST_SUPPORTED 1
#endif #endif

Loading…
Cancel
Save