| author | David Anderson <dvander@alliedmods.net> |
| Sun Oct 28 05:48:06 2007 +0000 (2007-10-28) | |
| changeset 1645 | 27307df4d711 |
| permissions | -rw-r--r-- |
| dvander@1645 | 1 |
/* |
| dvander@1645 | 2 |
** 2007 August 28 |
| dvander@1645 | 3 |
** |
| dvander@1645 | 4 |
** The author disclaims copyright to this source code. In place of |
| dvander@1645 | 5 |
** a legal notice, here is a blessing: |
| dvander@1645 | 6 |
** |
| dvander@1645 | 7 |
** May you do good and not evil. |
| dvander@1645 | 8 |
** May you find forgiveness for yourself and forgive others. |
| dvander@1645 | 9 |
** May you share freely, never taking more than you give. |
| dvander@1645 | 10 |
** |
| dvander@1645 | 11 |
************************************************************************* |
| dvander@1645 | 12 |
** |
| dvander@1645 | 13 |
** This file contains the common header for all mutex implementations. |
| dvander@1645 | 14 |
** The sqliteInt.h header #includes this file so that it is available |
| dvander@1645 | 15 |
** to all source files. We break it out in an effort to keep the code |
| dvander@1645 | 16 |
** better organized. |
| dvander@1645 | 17 |
** |
| dvander@1645 | 18 |
** NOTE: source files should *not* #include this header file directly. |
| dvander@1645 | 19 |
** Source files should #include the sqliteInt.h file and let that file |
| dvander@1645 | 20 |
** include this one indirectly. |
| dvander@1645 | 21 |
** |
| dvander@1645 | 22 |
** $Id$ |
| dvander@1645 | 23 |
*/ |
| dvander@1645 | 24 |
|
| dvander@1645 | 25 |
|
| dvander@1645 | 26 |
#ifdef SQLITE_MUTEX_APPDEF |
| dvander@1645 | 27 |
/* |
| dvander@1645 | 28 |
** If SQLITE_MUTEX_APPDEF is defined, then this whole module is |
| dvander@1645 | 29 |
** omitted and equivalent functionality must be provided by the |
| dvander@1645 | 30 |
** application that links against the SQLite library. |
| dvander@1645 | 31 |
*/ |
| dvander@1645 | 32 |
#else |
| dvander@1645 | 33 |
/* |
| dvander@1645 | 34 |
** Figure out what version of the code to use. The choices are |
| dvander@1645 | 35 |
** |
| dvander@1645 | 36 |
** SQLITE_MUTEX_NOOP For single-threaded applications that |
| dvander@1645 | 37 |
** do not desire error checking. |
| dvander@1645 | 38 |
** |
| dvander@1645 | 39 |
** SQLITE_MUTEX_NOOP_DEBUG For single-threaded applications with |
| dvander@1645 | 40 |
** error checking to help verify that mutexes |
| dvander@1645 | 41 |
** are being used correctly even though they |
| dvander@1645 | 42 |
** are not needed. Used when SQLITE_DEBUG is |
| dvander@1645 | 43 |
** defined on single-threaded builds. |
| dvander@1645 | 44 |
** |
| dvander@1645 | 45 |
** SQLITE_MUTEX_PTHREADS For multi-threaded applications on Unix. |
| dvander@1645 | 46 |
** |
| dvander@1645 | 47 |
** SQLITE_MUTEX_W32 For multi-threaded applications on Win32. |
| dvander@1645 | 48 |
** |
| dvander@1645 | 49 |
** SQLITE_MUTEX_OS2 For multi-threaded applications on OS/2. |
| dvander@1645 | 50 |
*/ |
| dvander@1645 | 51 |
#define SQLITE_MUTEX_NOOP 1 /* The default */ |
| dvander@1645 | 52 |
#if defined(SQLITE_DEBUG) && !SQLITE_THREADSAFE |
| dvander@1645 | 53 |
# undef SQLITE_MUTEX_NOOP |
| dvander@1645 | 54 |
# define SQLITE_MUTEX_NOOP_DEBUG |
| dvander@1645 | 55 |
#endif |
| dvander@1645 | 56 |
#if defined(SQLITE_MUTEX_NOOP) && SQLITE_THREADSAFE && OS_UNIX |
| dvander@1645 | 57 |
# undef SQLITE_MUTEX_NOOP |
| dvander@1645 | 58 |
# define SQLITE_MUTEX_PTHREADS |
| dvander@1645 | 59 |
#endif |
| dvander@1645 | 60 |
#if defined(SQLITE_MUTEX_NOOP) && SQLITE_THREADSAFE && OS_WIN |
| dvander@1645 | 61 |
# undef SQLITE_MUTEX_NOOP |
| dvander@1645 | 62 |
# define SQLITE_MUTEX_W32 |
| dvander@1645 | 63 |
#endif |
| dvander@1645 | 64 |
#if defined(SQLITE_MUTEX_NOOP) && SQLITE_THREADSAFE && OS_OS2 |
| dvander@1645 | 65 |
# undef SQLITE_MUTEX_NOOP |
| dvander@1645 | 66 |
# define SQLITE_MUTEX_OS2 |
| dvander@1645 | 67 |
#endif |
| dvander@1645 | 68 |
|
| dvander@1645 | 69 |
#ifdef SQLITE_MUTEX_NOOP |
| dvander@1645 | 70 |
/* |
| dvander@1645 | 71 |
** If this is a no-op implementation, implement everything as macros. |
| dvander@1645 | 72 |
*/ |
| dvander@1645 | 73 |
#define sqlite3_mutex_alloc(X) ((sqlite3_mutex*)8) |
| dvander@1645 | 74 |
#define sqlite3_mutex_free(X) |
| dvander@1645 | 75 |
#define sqlite3_mutex_enter(X) |
| dvander@1645 | 76 |
#define sqlite3_mutex_try(X) SQLITE_OK |
| dvander@1645 | 77 |
#define sqlite3_mutex_leave(X) |
| dvander@1645 | 78 |
#define sqlite3_mutex_held(X) 1 |
| dvander@1645 | 79 |
#define sqlite3_mutex_notheld(X) 1 |
| dvander@1645 | 80 |
#endif |
| dvander@1645 | 81 |
|
| dvander@1645 | 82 |
#endif /* SQLITE_MUTEX_APPDEF */ |