LMDB
|
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)) |
typedef pthread_mutex_t | mdb_mutex_t [1] |
typedef pthread_mutex_t * | mdb_mutexref_t |
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.
#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_SYSV_SEM instead of -DMDB_USE_POSIX_MUTEX. (SysV semaphores are also Robust, but some systems don't support them either.)
#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 pthread_mutex_t mdb_mutex_t[1] |
Shared mutex/semaphore as it is stored (mdb_mutex_t), and as local variables keep it (mdb_mutexref_t).
When #mdb_mutexref_t is a pointer declaration and mdb_mutex_t is not, then it is array[size 1] so it can be assigned to a pointer.