2010-11-12 2 views
3

Можно ли проверить threading mode активного соединения SQLite? Я знаю о sqlite3_threadsafe(), ноКак проверить режим потоковой передачи данных SQLite?

Возвращаемое значение функции sqlite3_threadsafe() показывает только настройки времени компиляции безопасности потока, а не какие-либо во время выполнения изменения этой настройки, сделанные sqlite3_config().

ответ

0

Вот частичный ответ:

sqlite3_mutex *sqlite3_db_mutex(sqlite3*); 

Этот интерфейс возвращает указатель на объект sqlite3_mutex что сериализующий доступа к соединению базы данных заданного в аргументе, когда режим нарезания резьбы является Serialized , Если режим нити является однопоточным или Многопоточный, то эта процедура возвращает указатель NULL.

Теперь мне нужен только способ отличить Однозаходные от Multi-нити ...

+0

Не могли бы вы дать подробные инструкции по проверке режима нарезки во время выполнения. Я получаю следующую ошибку. нет такой функции: sqlite3_threadsafe и нет такой функции: sqlite3_mutex – Rahul

0

Хммм, семилетний вопрос. Вы сами ответили на это. Для следующего человека, который приходит:

sqlite3_mutex возвращает NULL, если режим потоковой передачи - однопоточный или многопоточный.

Итак, мы имеем:

(sqlite3_threadsafe, sqlite3_mutex): режим многопоточности

(0, NULL): Однозаходные

(1, NULL): Mutli-нить

(1, действительный): Сериализованный

+0

Нет, 'sqlite3_threadsafe' не говорит вам, является ли режим потоковой передачи _current_ однопоточным или многопоточным, вот в чем проблема. –

+0

нет такой функции: sqlite3_threadsafe и нет такой функции: sqlite3_mutex. я получаю эту ошибку – Rahul

Смежные вопросы