diff options
author | danielk1977 <danielk1977@noemail.net> | 2009-03-23 17:11:26 +0000 |
---|---|---|
committer | danielk1977 <danielk1977@noemail.net> | 2009-03-23 17:11:26 +0000 |
commit | a8bbef84bf3214905ceb9ea32fc249010dbde41a (patch) | |
tree | 14594a477429fb069f01068b39d30e208ffde5f0 /src/prepare.c | |
parent | bc73971db6162bf60d775775b180cea06615b29c (diff) | |
download | sqlite-a8bbef84bf3214905ceb9ea32fc249010dbde41a.tar.gz sqlite-a8bbef84bf3214905ceb9ea32fc249010dbde41a.zip |
Fix an obscure race condition that can occur when multiple threads, shared cache and DDL statements are combined. Enhance notify2.test to test this scenario. (CVS 6373)
FossilOrigin-Name: 92ec5975123284aff3a69ee16c397d9e2a844c0b
Diffstat (limited to 'src/prepare.c')
-rw-r--r-- | src/prepare.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/prepare.c b/src/prepare.c index 3367f7979..282e46a84 100644 --- a/src/prepare.c +++ b/src/prepare.c @@ -13,7 +13,7 @@ ** interface, and routines that contribute to loading the database schema ** from disk. ** -** $Id: prepare.c,v 1.111 2009/03/19 18:51:07 danielk1977 Exp $ +** $Id: prepare.c,v 1.112 2009/03/23 17:11:27 danielk1977 Exp $ */ #include "sqliteInt.h" @@ -91,7 +91,7 @@ int sqlite3InitCallback(void *pInit, int argc, char **argv, char **NotUsed){ pData->rc = rc; if( rc==SQLITE_NOMEM ){ db->mallocFailed = 1; - }else if( rc!=SQLITE_INTERRUPT ){ + }else if( rc!=SQLITE_INTERRUPT && (rc&0xff)!=SQLITE_LOCKED ){ corruptSchema(pData, argv[0], zErr); } sqlite3DbFree(db, zErr); |