/ Check-in [f9a03483]
Login
SQLite training in Houston TX on 2019-11-05 (details)
Part of the 2019 Tcl Conference

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 | SQL archive
Timelines: family | ancestors | descendants | both | mutexInitCmpSwap
Files: files | file ages | folders
SHA1: f9a034834e6c6e32ac350cf48bec981490e533ad
User & Date: mistachkin 2015-09-12 03:40:13
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: 1a97bc81 user: mistachkin tags: mutexInitCmpSwap
03:40
Clarify the new mutex implementation reset logic in sqlite3_shutdown(). check-in: f9a03483 user: mistachkin tags: mutexInitCmpSwap
03:35
Add more asserts to the mutex subsystem. check-in: 7562f1fb user: mistachkin tags: mutexInitCmpSwap
Changes
Hide Diffs Unified Diffs Show Whitespace Changes Patch

Changes to src/main.c.

330
331
332
333
334
335
336









337

338
339
340
341
342
343
344
    sqlite3_temp_directory = 0;
#endif
  }
  if( sqlite3GlobalConfig.isMutexInit ){
    sqlite3MutexEnd();
    sqlite3GlobalConfig.isMutexInit = 0;
  }









  sqlite3GlobalConfig.pMutex = 0;


  return SQLITE_OK;
}

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







>
>
>
>
>
>
>
>
>

>







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.