diff options
author | drh <drh@noemail.net> | 2009-07-25 22:13:34 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2009-07-25 22:13:34 +0000 |
commit | a53c704fec33e929883e7e17ebd5802e2094508e (patch) | |
tree | d341027f669bc7048032d6d4c502cc80599045a2 /src | |
parent | f31506b7b74be765622610975864e66e41363f64 (diff) | |
download | sqlite-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.c | 9 |
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 ); |