aboutsummaryrefslogtreecommitdiff
path: root/src/os_unix.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2010-04-30 16:38:59 +0000
committerdan <dan@noemail.net>2010-04-30 16:38:59 +0000
commit78daa5a7d9ae0629032b459d2fb65c2f6fc5e2a8 (patch)
tree34ed76b51c5493e232d73f4828942436104c3f3a /src/os_unix.c
parent30c8629e67373a08c60bf7cc89c39ec7e30809d6 (diff)
downloadsqlite-78daa5a7d9ae0629032b459d2fb65c2f6fc5e2a8.tar.gz
sqlite-78daa5a7d9ae0629032b459d2fb65c2f6fc5e2a8.zip
Fix a bug whereby upgrading from a READ_FULL to a WRITE lock, and then back to a read lock was dropping all WAL locks.
FossilOrigin-Name: 55f5af5e174df7a28deeb36faa51138926669897
Diffstat (limited to 'src/os_unix.c')
-rw-r--r--src/os_unix.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/os_unix.c b/src/os_unix.c
index 2af4f5a09..6e01ffb6b 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -5240,9 +5240,9 @@ static int unixShmLock(
}
}
}else if( p->lockState==SQLITE_SHM_WRITE ){
+ rc = unixShmSharedLock(pFile, p, UNIX_SHM_A);
unixShmUnlock(pFile, p, UNIX_SHM_C|UNIX_SHM_D);
- p->lockState = p->readLock;
- rc = SQLITE_OK;
+ p->lockState = SQLITE_SHM_READ;
}else{
assert( p->lockState==SQLITE_SHM_RECOVER );
unixShmUnlock(pFile, p, UNIX_SHM_MUTEX);