![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
sqlite3_threadsafe() возвращает ноль если и только если SQLite был собран
с кодом mutexing, опущенным из-за выбора времени компиляции
SQLITE_THREADSAFE = 0. SQLite может быть собран с или без mutexes. Когда макрос
SQLITE_THREADSAFE препроцессора C
равняется 1 или 2, mutexes позволены, а SQLite ориентирован на многопоточное
исполнение. Когда макрос
SQLITE_THREADSAFE = 0, mutexes опущены.
Без mutexes небезопасно использовать SQLite одновременно больше,
чем от одного потока. Предоставление возможности mutexes подвергается измеримой потере
производительности. Таким образом, если скорость имеет предельное значение,
имеет смысл отключать mutexes. Но для максимальной безопасности, должен быть
позволен mutexes. Поведение по умолчанию: включены mutexes. Этот интерфейс может использоваться, чтобы
удостовериться, что версия SQLite была собрана с желаемым значением макроса
SQLITE_THREADSAFE. Этот интерфейс сообщает только о значении флага времени компиляции
SQLITE_THREADSAFE.
Если SQLite собран с SQLITE_THREADSAFE=1 или =2,
тогда mutexes позволены по умолчанию, но могут быть полностью или частично
отключены, используя запрос sqlite3_config()
с параметрами SQLITE_CONFIG_SINGLETHREAD
, SQLITE_CONFIG_MULTITHREAD или
SQLITE_CONFIG_SERIALIZED.
Возвращаемое значение sqlite3_threadsafe()
показывает только значение времени компиляции, но не любые изменения во
время выполнения, сделанные sqlite3_config().
Другими словами, возвращаемое значение sqlite3_threadsafe()
неизменно вызовами sqlite3_config(). См. здесь для подробностей.
Choose any three.
SQLite C Interface
Тест, чтобы видеть, ориентирована ли библиотека
на многопоточное исполнение
int sqlite3_threadsafe(void);