diff options
Diffstat (limited to 'sqlite3_opt_unlock_notify.c')
-rw-r--r-- | sqlite3_opt_unlock_notify.c | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/sqlite3_opt_unlock_notify.c b/sqlite3_opt_unlock_notify.c deleted file mode 100644 index fc37b33..0000000 --- a/sqlite3_opt_unlock_notify.c +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright (C) 2018 Yasuhiro Matsumoto <mattn.jp@gmail.com>. -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -#ifdef SQLITE_ENABLE_UNLOCK_NOTIFY -#include <stdio.h> -#include "sqlite3-binding.h" - -extern int unlock_notify_wait(sqlite3 *db); - -int -_sqlite3_step_blocking(sqlite3_stmt *stmt) -{ - int rv; - sqlite3* db; - - db = sqlite3_db_handle(stmt); - for (;;) { - rv = sqlite3_step(stmt); - if (rv != SQLITE_LOCKED) { - break; - } - if (sqlite3_extended_errcode(db) != SQLITE_LOCKED_SHAREDCACHE) { - break; - } - rv = unlock_notify_wait(db); - if (rv != SQLITE_OK) { - break; - } - sqlite3_reset(stmt); - } - - return rv; -} - -int -_sqlite3_step_row_blocking(sqlite3_stmt* stmt, long long* rowid, long long* changes) -{ - int rv; - sqlite3* db; - - db = sqlite3_db_handle(stmt); - for (;;) { - rv = sqlite3_step(stmt); - if (rv!=SQLITE_LOCKED) { - break; - } - if (sqlite3_extended_errcode(db) != SQLITE_LOCKED_SHAREDCACHE) { - break; - } - rv = unlock_notify_wait(db); - if (rv != SQLITE_OK) { - break; - } - sqlite3_reset(stmt); - } - - *rowid = (long long) sqlite3_last_insert_rowid(db); - *changes = (long long) sqlite3_changes(db); - return rv; -} - -int -_sqlite3_prepare_v2_blocking(sqlite3 *db, const char *zSql, int nBytes, sqlite3_stmt **ppStmt, const char **pzTail) -{ - int rv; - - for (;;) { - rv = sqlite3_prepare_v2(db, zSql, nBytes, ppStmt, pzTail); - if (rv!=SQLITE_LOCKED) { - break; - } - if (sqlite3_extended_errcode(db) != SQLITE_LOCKED_SHAREDCACHE) { - break; - } - rv = unlock_notify_wait(db); - if (rv != SQLITE_OK) { - break; - } - } - - return rv; -} -#endif |