Man page - mdb_compat(3)
Packages contains this manual
Manual
compat
NAMESYNOPSIS
Macros
Typedefs
Detailed Description
Macro Definition Documentation
#define MDB_DEVEL 0
#define mdb_func_ β<mdb_unknown>β
#define MDB_USE_ROBUST 1
#define Z βzβ
#define MDB_PIDLOCK 1
#define LOCK_MUTEX0(mutex) pthread_mutex_lock(mutex)
#define UNLOCK_MUTEX(mutex) pthread_mutex_unlock(mutex)
#define mdb_mutex_consistent(mutex) pthread_mutex_consistent(mutex)
#define ErrCode() errno
#define HANDLE int
#define INVALID_HANDLE_VALUE (-1)
#define GET_PAGESIZE(x) ((x) = sysconf(_SC_PAGE_SIZE))
Typedef Documentation
typedef pthread_mutex_t mdb_mutex_t[1]
typedef pthread_mutex_t* mdb_mutexref_t
Author
NAME
compat - Compatibility Macros
SYNOPSIS
Macros
#define
MDB_DEVEL
0
#define
mdb_func_
β<mdb_unknown>β
#define
MDB_NO_ROOT
(
MDB_LAST_ERRCODE
+ 10)
#define
MDB_USE_ROBUST
1
#define
THREAD_RET
void *
#define
THREAD_CREATE
(thr, start, arg)
pthread_create(&thr,NULL,start,arg)
#define
THREAD_FINISH
(thr) pthread_join(thr,NULL)
#define
Z
βzβ
#define
MDB_PIDLOCK
1
#define
LOCK_MUTEX0
(mutex) pthread_mutex_lock(mutex)
#define
UNLOCK_MUTEX
(mutex)
pthread_mutex_unlock(mutex)
#define
mdb_mutex_consistent
(mutex)
pthread_mutex_consistent(mutex)
#define
ErrCode
() errno
#define
HANDLE
int
#define
INVALID_HANDLE_VALUE
(-1)
#define
GET_PAGESIZE
(x) ((x) =
sysconf(_SC_PAGE_SIZE))
#define
MNAME_LEN
(sizeof(pthread_mutex_t))
Typedefs
typedef
pthread_mutex_t
mdb_mutex_t
[1]
typedef pthread_mutex_t *
mdb_mutexref_t
Detailed Description
A bunch of macros to minimize the amount of platform-specific ifdefs needed throughout the rest of the code. When the features this library needs are similar enough to POSIX to be hidden in a one-or-two line replacement, this macro approach is used.
Macro Definition Documentation
#define MDB_DEVEL 0
Features under development
#define mdb_func_ β<mdb_unknown>β
Wrapper around func , which is a C99 feature
#define MDB_USE_ROBUST 1
Some platforms define the EOWNERDEAD error code even though they donβt support Robust Mutexes. Compile with -DMDB_USE_ROBUST=0, or use some other mechanism like -DMDB_USE_POSIX_SEM instead of -DMDB_USE_POSIX_MUTEX. (Posix semaphores are not robust.)
#define Z βzβ
printf format modifier for size_t
#define MDB_PIDLOCK 1
For MDB_LOCK_FORMAT: True if readers take a pid lock in the lockfile
#define LOCK_MUTEX0(mutex) pthread_mutex_lock(mutex)
Lock the reader or writer mutex. Returns 0 or a code to give mdb_mutex_failed(), as in LOCK_MUTEX().
#define UNLOCK_MUTEX(mutex) pthread_mutex_unlock(mutex)
Unlock the reader or writer mutex.
#define mdb_mutex_consistent(mutex) pthread_mutex_consistent(mutex)
Mark mutex-protected data as repaired, after death of previous owner.
#define ErrCode() errno
Get the error code for the last failed system function.
#define HANDLE int
An abstraction for a file handle. On POSIX systems file handles are small integers. On Windows theyβre opaque pointers.
#define INVALID_HANDLE_VALUE (-1)
A value for an invalid file handle. Mainly used to initialize file variables and signify that they are unused.
#define GET_PAGESIZE(x) ((x) = sysconf(_SC_PAGE_SIZE))
Get the size of a memory page for the system. This is the basic size that the platformβs memory manager uses, and is fundamental to the use of memory-mapped files.
Typedef Documentation
typedef pthread_mutex_t mdb_mutex_t[1]
Shared mutex/semaphore as the original is stored.
Not for copies. Instead it can be assigned to an mdb_mutexref_t . When mdb_mutexref_t is a pointer and mdb_mutex_t is not, then it is array[size 1] so it can be assigned to the pointer.
typedef pthread_mutex_t* mdb_mutexref_t
Reference to an mdb_mutex_t
Author
Generated automatically by Doxygen for LMDB from the source code.