diff options
author | drh <drh@noemail.net> | 2008-05-02 14:23:54 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2008-05-02 14:23:54 +0000 |
commit | 8a9c17f1d57e60a53273f9535e56b1085676d681 (patch) | |
tree | a5f19f4cf41c9f89ab68a4ee9aee6bb6ed44c5e3 /src | |
parent | 8c23864c1720e5aea4903e299a2f9c948f47c84e (diff) | |
download | sqlite-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.c | 8 |
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 ){ |