aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2009-07-25 22:13:34 +0000
committerdrh <drh@noemail.net>2009-07-25 22:13:34 +0000
commita53c704fec33e929883e7e17ebd5802e2094508e (patch)
treed341027f669bc7048032d6d4c502cc80599045a2 /src
parentf31506b7b74be765622610975864e66e41363f64 (diff)
downloadsqlite-a53c704fec33e929883e7e17ebd5802e2094508e.tar.gz
sqlite-a53c704fec33e929883e7e17ebd5802e2094508e.zip
The noReadlock property on a pager object implies the readOnly property.
Use this fact to simplify the logic in sqlite3PagerSharedLock(). (CVS 6944) FossilOrigin-Name: 886e665f6cf780464b280c286b03c9fb5c1a6b2a
Diffstat (limited to 'src')
-rw-r--r--src/pager.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/pager.c b/src/pager.c
index a537536b4..d76da380e 100644
--- a/src/pager.c
+++ b/src/pager.c
@@ -18,7 +18,7 @@
** file simultaneously, or one process from reading the database while
** another is writing.
**
-** @(#) $Id: pager.c,v 1.626 2009/07/25 19:31:32 drh Exp $
+** @(#) $Id: pager.c,v 1.627 2009/07/25 22:13:35 drh Exp $
*/
#ifndef SQLITE_OMIT_DISKIO
#include "sqliteInt.h"
@@ -3567,14 +3567,15 @@ int sqlite3PagerSharedLock(Pager *pPager){
int isHotJournal = 0;
assert( !MEMDB );
assert( sqlite3PcacheRefCount(pPager->pPCache)==0 );
- if( !pPager->noReadlock ){
+ if( pPager->noReadlock ){
+ assert( pPager->readOnly );
+ pPager->state = PAGER_SHARED;
+ }else{
rc = pager_wait_on_lock(pPager, SHARED_LOCK);
if( rc!=SQLITE_OK ){
assert( pPager->state==PAGER_UNLOCK );
return pager_error(pPager, rc);
}
- }else if( pPager->state==PAGER_UNLOCK ){
- pPager->state = PAGER_SHARED;
}
assert( pPager->state>=SHARED_LOCK );