Navigation
API > API/Plugins > API/Plugins/SQLiteCore > API/Plugins/SQLiteCore/sqlite
References
| Module | SQLiteCore |
| Header | /Engine/Plugins/Runtime/Database/SQLiteCore/Source/SQLiteCore/Public/sqlite/sqlite3.h |
| Include | #include "sqlite/sqlite3.h" |
int sqlite3_threadsafe()
Remarks
CAPI3REF: Test To See If The Library Is Threadsafe
^The sqlite3_threadsafe() function returns zero if and only if SQLite was compiled with mutexing code omitted due to the [SQLITE_THREADSAFE] compile-time option being set to 0.
SQLite can be compiled with or without mutexes. When the [SQLITE_THREADSAFE] C preprocessor macro is 1 or 2, mutexes are enabled and SQLite is threadsafe. When the [SQLITE_THREADSAFE] macro is 0, the mutexes are omitted. Without the mutexes, it is not safe to use SQLite concurrently from more than one thread.
Enabling mutexes incurs a measurable performance penalty. So if speed is of utmost importance, it makes sense to disable the mutexes. But for maximum safety, mutexes should be enabled. ^The default behavior is for mutexes to be enabled.
This interface can be used by an application to make sure that the version of SQLite that it is linking against was compiled with the desired setting of the [SQLITE_THREADSAFE] macro.
This interface only reports on the compile-time mutex setting of the [SQLITE_THREADSAFE] flag. If SQLite is compiled with SQLITE_THREADSAFE=1 or =2 then mutexes are enabled by default but can be fully or partially disabled using a call to [sqlite3_config()] with the verbs [SQLITE_CONFIG_SINGLETHREAD], [SQLITE_CONFIG_MULTITHREAD], or [SQLITE_CONFIG_SERIALIZED]. ^(The return value of the sqlite3_threadsafe() function shows only the compile-time setting of thread safety, not any run-time changes to that setting made by sqlite3_config(). In other words, the return value from sqlite3_threadsafe() is unchanged by calls to sqlite3_config().)^
See the [threading mode] documentation for additional information.