aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2008-05-02 14:23:54 +0000
committerdrh <drh@noemail.net>2008-05-02 14:23:54 +0000
commit8a9c17f1d57e60a53273f9535e56b1085676d681 (patch)
treea5f19f4cf41c9f89ab68a4ee9aee6bb6ed44c5e3 /src
parent8c23864c1720e5aea4903e299a2f9c948f47c84e (diff)
downloadsqlite-8a9c17f1d57e60a53273f9535e56b1085676d681.tar.gz
sqlite-8a9c17f1d57e60a53273f9535e56b1085676d681.zip
Make sure that when a connection is blocking on a RESERVED lock that it
continues after the lock is released. Ticket #3093. (CVS 5078) FossilOrigin-Name: 3dc334aa4a394e85858d2441225d64d73664b5b5
Diffstat (limited to 'src')
-rw-r--r--src/btree.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/btree.c b/src/btree.c
index bf4612d27..4337fc2ef 100644
--- a/src/btree.c
+++ b/src/btree.c
@@ -9,7 +9,7 @@
** May you share freely, never taking more than you give.
**
*************************************************************************
-** $Id: btree.c,v 1.452 2008/04/24 19:15:10 shane Exp $
+** $Id: btree.c,v 1.453 2008/05/02 14:23:55 drh Exp $
**
** This file implements a external (disk-based) database using BTrees.
** See the header comment on "btreeInt.h" for additional information.
@@ -1899,8 +1899,10 @@ int sqlite3BtreeBeginTrans(Btree *p, int wrflag){
#endif
do {
- while( rc==SQLITE_OK && pBt->pPage1==0 ){
- rc = lockBtree(pBt);
+ if( pBt->pPage1==0 ){
+ do{
+ rc = lockBtree(pBt);
+ }while( pBt->pPage1==0 && rc==SQLITE_OK );
}
if( rc==SQLITE_OK && wrflag ){