diff options
author | dan <dan@noemail.net> | 2010-04-30 16:38:59 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2010-04-30 16:38:59 +0000 |
commit | 78daa5a7d9ae0629032b459d2fb65c2f6fc5e2a8 (patch) | |
tree | 34ed76b51c5493e232d73f4828942436104c3f3a /src/os_unix.c | |
parent | 30c8629e67373a08c60bf7cc89c39ec7e30809d6 (diff) | |
download | sqlite-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.c | 4 |
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); |