SQLite

Check-in [f9a034834e]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Clarify the new mutex implementation reset logic in sqlite3_shutdown().
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | mutexInitCmpSwap
Files: files | file ages | folders
SHA1: f9a034834e6c6e32ac350cf48bec981490e533ad
User & Date: mistachkin 2015-09-12 03:40:13.463
Context
2015-09-12
04:19
Specifying an invalid mutex implementation (via SQLITE_CONFIG_MUTEX) should cause the default one to be used instead. (check-in: 1a97bc81cc user: mistachkin tags: mutexInitCmpSwap)
03:40
Clarify the new mutex implementation reset logic in sqlite3_shutdown(). (check-in: f9a034834e user: mistachkin tags: mutexInitCmpSwap)
03:35
Add more asserts to the mutex subsystem. (check-in: 7562f1fbed user: mistachkin tags: mutexInitCmpSwap)
Changes
Side-by-Side Diff Ignore Whitespace Patch
Changes to src/main.c.
330
331
332
333
334
335
336









337

338
339
340
341
342
343
344
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354







+
+
+
+
+
+
+
+
+

+







    sqlite3_temp_directory = 0;
#endif
  }
  if( sqlite3GlobalConfig.isMutexInit ){
    sqlite3MutexEnd();
    sqlite3GlobalConfig.isMutexInit = 0;
  }

  /*
  ** Force the state of the mutex subsystem to be completely reset now, even
  ** if the configured xMutexEnd(), if any, failed.  This is not thread-safe.
  ** This is necessary even if the xMutexInit() was never called, due to the
  ** possiblity of this state being changed via SQLITE_CONFIG_MUTEX.  After
  ** this point, the application must enable any custom mutex implementation
  ** again via SQLITE_CONFIG_MUTEX, if necessary.
  */
  sqlite3GlobalConfig.pMutex = 0;
  memset(&sqlite3GlobalConfig.mutex, 0, sizeof(sqlite3_mutex_methods));

  return SQLITE_OK;
}

/*
** This API allows applications to modify the global configuration of
** the SQLite library at run-time.