1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-12-21 13:38:01 +03:00

Experimental change to allow clients to block when taking a SHARED lock to connect to a wal mode database.

FossilOrigin-Name: d2d6a000fb9bf8097e0ce9979685408d183be3ab785ceeb11ec1f97a81a83e41
This commit is contained in:
dan
2025-02-10 20:46:14 +00:00
parent df54ecb1bf
commit 2d87894700
11 changed files with 231 additions and 29 deletions

View File

@@ -221,6 +221,13 @@ static void attachFunc(
sqlite3BtreeEnterAll(db);
db->init.iDb = 0;
db->mDbFlags &= ~(DBFLAG_SchemaKnownOk);
#ifdef SQLITE_ENABLE_SETLK_TIMEOUT
if( db->setlkFlags & SQLITE_SETLK_BLOCK_ON_CONNECT ){
int val = 1;
sqlite3_file *fd = sqlite3PagerFile(sqlite3BtreePager(pNew->pBt));
sqlite3OsFileControlHint(fd, SQLITE_FCNTL_BLOCK_ON_CONNECT, &val);
}
#endif
if( !REOPEN_AS_MEMDB(db) ){
rc = sqlite3Init(db, &zErrDyn);
}