diff options
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 ); |