| OLD | NEW | 
 | (Empty) | 
|   1 /* |  | 
|   2 ** 2007 August 28 |  | 
|   3 ** |  | 
|   4 ** The author disclaims copyright to this source code.  In place of |  | 
|   5 ** a legal notice, here is a blessing: |  | 
|   6 ** |  | 
|   7 **    May you do good and not evil. |  | 
|   8 **    May you find forgiveness for yourself and forgive others. |  | 
|   9 **    May you share freely, never taking more than you give. |  | 
|  10 ** |  | 
|  11 ************************************************************************* |  | 
|  12 ** |  | 
|  13 ** This file contains the common header for all mutex implementations. |  | 
|  14 ** The sqliteInt.h header #includes this file so that it is available |  | 
|  15 ** to all source files.  We break it out in an effort to keep the code |  | 
|  16 ** better organized. |  | 
|  17 ** |  | 
|  18 ** NOTE:  source files should *not* #include this header file directly. |  | 
|  19 ** Source files should #include the sqliteInt.h file and let that file |  | 
|  20 ** include this one indirectly. |  | 
|  21 ** |  | 
|  22 ** $Id: mutex.h,v 1.9 2008/10/07 15:25:48 drh Exp $ |  | 
|  23 */ |  | 
|  24  |  | 
|  25  |  | 
|  26 /* |  | 
|  27 ** Figure out what version of the code to use.  The choices are |  | 
|  28 ** |  | 
|  29 **   SQLITE_MUTEX_OMIT         No mutex logic.  Not even stubs.  The |  | 
|  30 **                             mutexes implemention cannot be overridden |  | 
|  31 **                             at start-time. |  | 
|  32 ** |  | 
|  33 **   SQLITE_MUTEX_NOOP         For single-threaded applications.  No |  | 
|  34 **                             mutual exclusion is provided.  But this |  | 
|  35 **                             implementation can be overridden at |  | 
|  36 **                             start-time. |  | 
|  37 ** |  | 
|  38 **   SQLITE_MUTEX_PTHREADS     For multi-threaded applications on Unix. |  | 
|  39 ** |  | 
|  40 **   SQLITE_MUTEX_W32          For multi-threaded applications on Win32. |  | 
|  41 ** |  | 
|  42 **   SQLITE_MUTEX_OS2          For multi-threaded applications on OS/2. |  | 
|  43 */ |  | 
|  44 #if !SQLITE_THREADSAFE |  | 
|  45 # define SQLITE_MUTEX_OMIT |  | 
|  46 #endif |  | 
|  47 #if SQLITE_THREADSAFE && !defined(SQLITE_MUTEX_NOOP) |  | 
|  48 #  if SQLITE_OS_UNIX |  | 
|  49 #    define SQLITE_MUTEX_PTHREADS |  | 
|  50 #  elif SQLITE_OS_WIN |  | 
|  51 #    define SQLITE_MUTEX_W32 |  | 
|  52 #  elif SQLITE_OS_OS2 |  | 
|  53 #    define SQLITE_MUTEX_OS2 |  | 
|  54 #  else |  | 
|  55 #    define SQLITE_MUTEX_NOOP |  | 
|  56 #  endif |  | 
|  57 #endif |  | 
|  58  |  | 
|  59 #ifdef SQLITE_MUTEX_OMIT |  | 
|  60 /* |  | 
|  61 ** If this is a no-op implementation, implement everything as macros. |  | 
|  62 */ |  | 
|  63 #define sqlite3_mutex_alloc(X)    ((sqlite3_mutex*)8) |  | 
|  64 #define sqlite3_mutex_free(X) |  | 
|  65 #define sqlite3_mutex_enter(X) |  | 
|  66 #define sqlite3_mutex_try(X)      SQLITE_OK |  | 
|  67 #define sqlite3_mutex_leave(X) |  | 
|  68 #define sqlite3_mutex_held(X)     1 |  | 
|  69 #define sqlite3_mutex_notheld(X)  1 |  | 
|  70 #define sqlite3MutexAlloc(X)      ((sqlite3_mutex*)8) |  | 
|  71 #define sqlite3MutexInit()        SQLITE_OK |  | 
|  72 #define sqlite3MutexEnd() |  | 
|  73 #endif /* defined(SQLITE_OMIT_MUTEX) */ |  | 
| OLD | NEW |