aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorshaneh <shaneh@noemail.net>2010-12-07 17:12:21 +0000
committershaneh <shaneh@noemail.net>2010-12-07 17:12:21 +0000
commit2c2e8eb1a8632c692ab538e5246528513c5ce416 (patch)
tree54327dddcb6b98b29802142d7726de3b4a3b8520 /src
parentc216eee7ce2211ffd363b3885b34f161f3bc237f (diff)
downloadsqlite-2c2e8eb1a8632c692ab538e5246528513c5ce416.tar.gz
sqlite-2c2e8eb1a8632c692ab538e5246528513c5ce416.zip
Work around restriction in Windows file locking.
FossilOrigin-Name: fe441df9ba447d97571e919099846efa3ec87427
Diffstat (limited to 'src')
-rw-r--r--src/test_superlock.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/test_superlock.c b/src/test_superlock.c
index 464da5507..936fcad0c 100644
--- a/src/test_superlock.c
+++ b/src/test_superlock.c
@@ -151,10 +151,14 @@ static int superlockWalLock(
void sqlite3demo_superunlock(void *pLock){
Superlock *p = (Superlock *)pLock;
if( p->bWal ){
+ int rc; /* Return code */
int flags = SQLITE_SHM_UNLOCK | SQLITE_SHM_EXCLUSIVE;
sqlite3_file *fd = 0;
- sqlite3_file_control(p->db, "main", SQLITE_FCNTL_FILE_POINTER, (void *)&fd);
- fd->pMethods->xShmLock(fd, 2, SQLITE_SHM_NLOCK-2, flags);
+ rc = sqlite3_file_control(p->db, "main", SQLITE_FCNTL_FILE_POINTER, (void *)&fd);
+ if( rc==SQLITE_OK ){
+ fd->pMethods->xShmLock(fd, 2, 1, flags);
+ fd->pMethods->xShmLock(fd, 3, SQLITE_SHM_NLOCK-3, flags);
+ }
}
sqlite3_close(p->db);
sqlite3_free(p);