View Revisions: Issue #3078 |
[ Back to Issue ] |
Summary |
0003078: Кэш SQLite3: функции Delete и SaveTile могут возвращать неопределённый результат |
|
Revision |
19-06-2016 13:28 by zed |
|
Description |
Для получения результата выполнения операций в указанных функциях используется функция sqlite3_changes, вот только она не предназначена для использования в многопоточном режиме, поскольку возвращает указанное число для соединения, а не для стейтмента:
If a separate thread makes changes on the same database connection while sqlite3_changes() is running then the value returned is unpredictable and not meaningful.
Поэтому нужно либо использовать различные соединения для каждого модифицирующего запроса (INSERT/UPDATE/DELETE), либо, при выполнении таких запросов в рамках одного соединения, добавить блокировку.
|
|
Revision |
19-06-2016 13:36 by zed |
|
Description |
Для получения результата выполнения операций в указанных функциях используется функция sqlite3_changes, вот только она не предназначена для использования в многопоточном режиме, поскольку возвращает указанное число для соединения, а не для стейтмента:
If a separate thread makes changes on the same database connection while sqlite3_changes() is running then the value returned is unpredictable and not meaningful.
Поэтому нужно либо использовать различные соединения для каждого модифицирующего запроса (INSERT/UPDATE/DELETE), либо, при выполнении таких запросов в рамках одного соединения, добавить блокировку. |