Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: third_party/sqlite/src/src/mutex_noop.c

Issue 1610963002: Import SQLite 3.10.2. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/sqlite/src/src/mutex.c ('k') | third_party/sqlite/src/src/mutex_unix.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 ** 2008 October 07 2 ** 2008 October 07
3 ** 3 **
4 ** The author disclaims copyright to this source code. In place of 4 ** The author disclaims copyright to this source code. In place of
5 ** a legal notice, here is a blessing: 5 ** a legal notice, here is a blessing:
6 ** 6 **
7 ** May you do good and not evil. 7 ** May you do good and not evil.
8 ** May you find forgiveness for yourself and forgive others. 8 ** May you find forgiveness for yourself and forgive others.
9 ** May you share freely, never taking more than you give. 9 ** May you share freely, never taking more than you give.
10 ** 10 **
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 */ 100 */
101 static int debugMutexInit(void){ return SQLITE_OK; } 101 static int debugMutexInit(void){ return SQLITE_OK; }
102 static int debugMutexEnd(void){ return SQLITE_OK; } 102 static int debugMutexEnd(void){ return SQLITE_OK; }
103 103
104 /* 104 /*
105 ** The sqlite3_mutex_alloc() routine allocates a new 105 ** The sqlite3_mutex_alloc() routine allocates a new
106 ** mutex and returns a pointer to it. If it returns NULL 106 ** mutex and returns a pointer to it. If it returns NULL
107 ** that means that a mutex could not be allocated. 107 ** that means that a mutex could not be allocated.
108 */ 108 */
109 static sqlite3_mutex *debugMutexAlloc(int id){ 109 static sqlite3_mutex *debugMutexAlloc(int id){
110 static sqlite3_debug_mutex aStatic[SQLITE_MUTEX_STATIC_APP3 - 1]; 110 static sqlite3_debug_mutex aStatic[SQLITE_MUTEX_STATIC_VFS3 - 1];
111 sqlite3_debug_mutex *pNew = 0; 111 sqlite3_debug_mutex *pNew = 0;
112 switch( id ){ 112 switch( id ){
113 case SQLITE_MUTEX_FAST: 113 case SQLITE_MUTEX_FAST:
114 case SQLITE_MUTEX_RECURSIVE: { 114 case SQLITE_MUTEX_RECURSIVE: {
115 pNew = sqlite3Malloc(sizeof(*pNew)); 115 pNew = sqlite3Malloc(sizeof(*pNew));
116 if( pNew ){ 116 if( pNew ){
117 pNew->id = id; 117 pNew->id = id;
118 pNew->cnt = 0; 118 pNew->cnt = 0;
119 } 119 }
120 break; 120 break;
121 } 121 }
122 default: { 122 default: {
123 assert( id-2 >= 0 ); 123 #ifdef SQLITE_ENABLE_API_ARMOR
124 assert( id-2 < (int)(sizeof(aStatic)/sizeof(aStatic[0])) ); 124 if( id-2<0 || id-2>=ArraySize(aStatic) ){
125 (void)SQLITE_MISUSE_BKPT;
126 return 0;
127 }
128 #endif
125 pNew = &aStatic[id-2]; 129 pNew = &aStatic[id-2];
126 pNew->id = id; 130 pNew->id = id;
127 break; 131 break;
128 } 132 }
129 } 133 }
130 return (sqlite3_mutex*)pNew; 134 return (sqlite3_mutex*)pNew;
131 } 135 }
132 136
133 /* 137 /*
134 ** This routine deallocates a previously allocated mutex. 138 ** This routine deallocates a previously allocated mutex.
135 */ 139 */
136 static void debugMutexFree(sqlite3_mutex *pX){ 140 static void debugMutexFree(sqlite3_mutex *pX){
137 sqlite3_debug_mutex *p = (sqlite3_debug_mutex*)pX; 141 sqlite3_debug_mutex *p = (sqlite3_debug_mutex*)pX;
138 assert( p->cnt==0 ); 142 assert( p->cnt==0 );
139 assert( p->id==SQLITE_MUTEX_FAST || p->id==SQLITE_MUTEX_RECURSIVE ); 143 if( p->id==SQLITE_MUTEX_RECURSIVE || p->id==SQLITE_MUTEX_FAST ){
140 sqlite3_free(p); 144 sqlite3_free(p);
145 }else{
146 #ifdef SQLITE_ENABLE_API_ARMOR
147 (void)SQLITE_MISUSE_BKPT;
148 #endif
149 }
141 } 150 }
142 151
143 /* 152 /*
144 ** The sqlite3_mutex_enter() and sqlite3_mutex_try() routines attempt 153 ** The sqlite3_mutex_enter() and sqlite3_mutex_try() routines attempt
145 ** to enter a mutex. If another thread is already within the mutex, 154 ** to enter a mutex. If another thread is already within the mutex,
146 ** sqlite3_mutex_enter() will block and sqlite3_mutex_try() will return 155 ** sqlite3_mutex_enter() will block and sqlite3_mutex_try() will return
147 ** SQLITE_BUSY. The sqlite3_mutex_try() interface returns SQLITE_OK 156 ** SQLITE_BUSY. The sqlite3_mutex_try() interface returns SQLITE_OK
148 ** upon successful entry. Mutexes created using SQLITE_MUTEX_RECURSIVE can 157 ** upon successful entry. Mutexes created using SQLITE_MUTEX_RECURSIVE can
149 ** be entered multiple times by the same thread. In such cases the, 158 ** be entered multiple times by the same thread. In such cases the,
150 ** mutex must be exited an equal number of times before another thread 159 ** mutex must be exited an equal number of times before another thread
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 /* 206 /*
198 ** If compiled with SQLITE_MUTEX_NOOP, then the no-op mutex implementation 207 ** If compiled with SQLITE_MUTEX_NOOP, then the no-op mutex implementation
199 ** is used regardless of the run-time threadsafety setting. 208 ** is used regardless of the run-time threadsafety setting.
200 */ 209 */
201 #ifdef SQLITE_MUTEX_NOOP 210 #ifdef SQLITE_MUTEX_NOOP
202 sqlite3_mutex_methods const *sqlite3DefaultMutex(void){ 211 sqlite3_mutex_methods const *sqlite3DefaultMutex(void){
203 return sqlite3NoopMutex(); 212 return sqlite3NoopMutex();
204 } 213 }
205 #endif /* defined(SQLITE_MUTEX_NOOP) */ 214 #endif /* defined(SQLITE_MUTEX_NOOP) */
206 #endif /* !defined(SQLITE_MUTEX_OMIT) */ 215 #endif /* !defined(SQLITE_MUTEX_OMIT) */
OLDNEW
« no previous file with comments | « third_party/sqlite/src/src/mutex.c ('k') | third_party/sqlite/src/src/mutex_unix.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698