Browse Source

[Fix] Another effort to unbreak sqlite locking

tags/1.3.1
Vsevolod Stakhov 8 years ago
parent
commit
7832d59918
1 changed files with 13 additions and 1 deletions
  1. 13
    1
      src/libutil/sqlite_utils.c

+ 13
- 1
src/libutil/sqlite_utils.c View File

} }


if (create && has_lock) { if (create && has_lock) {
if (sqlite3_exec (sqlite, sqlite_wal, NULL, NULL, NULL) != SQLITE_OK) {
while ((rc = sqlite3_exec (sqlite, sqlite_wal, NULL, NULL, NULL)) != SQLITE_OK) {
if (rc == SQLITE_BUSY) {
struct timespec sleep_ts = {
.tv_sec = 0,
.tv_nsec = 1000000
};

nanosleep (&sleep_ts, NULL);

continue;
}

msg_warn_pool_check ("WAL mode is not supported (%s), locking issues might occur", msg_warn_pool_check ("WAL mode is not supported (%s), locking issues might occur",
sqlite3_errmsg (sqlite)); sqlite3_errmsg (sqlite));
break;
} }


if (sqlite3_exec (sqlite, exclusive_lock_sql, NULL, NULL, NULL) != SQLITE_OK) { if (sqlite3_exec (sqlite, exclusive_lock_sql, NULL, NULL, NULL) != SQLITE_OK) {

Loading…
Cancel
Save