-C Break\sup\sthe\smutex\simplementation\sinto\sseparate\ssource\sfiles,\sone\neach\sfor\sunix,\sw32,\sand\sos2.\s(CVS\s4312)
-D 2007-08-28T16:34:43
+C Fix\slocking\sbug\sin\sbtshared.c.\s(CVS\s4313)
+D 2007-08-28T16:44:20
F Makefile.in bfcc303429a5d9dcd552d807ee016c77427418c3
F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
F src/analyze.c a14237d869c6bea0846493b59317e4097e81a0b6
F src/attach.c a52225c75b107be8c5bc144a2b6d20201be3f8f8
F src/auth.c 083c1205b45e3f52291ec539d396b4fc557856b3
-F src/btmutex.c e11c59a7a68d9f295a1abfb753ffa4755b5037b1
+F src/btmutex.c 3a19fcb311d0d09e63d397779be881d4273f4518
F src/btree.c 850cd5de860e01233153ade9b24ffc775a794e8e
F src/btree.h a8fb26c56b745b57446c2bf29133619261313051
F src/btreeInt.h c1ba892252bc4dd76ad66da056536c64b23456e3
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P 5f55b2fc4ecdfc1bb68f479751b8642926fd8833
-R 51f416da38767e7822a0835f98d9ee97
+P fc5cd71aef5ac194f51d73350d773d532020967e
+R 7b6245a3074068afb2d3762f9a7bccba
U drh
-Z 49f77ee210b93cd481f8532fcc9bb445
+Z 99b073af6f11ba04ffcb0335f999b621
**
*************************************************************************
**
-** $Id: btmutex.c,v 1.1 2007/08/28 02:27:52 drh Exp $
+** $Id: btmutex.c,v 1.2 2007/08/28 16:44:20 drh Exp $
**
** This file contains code used to implement mutexes on Btree objects.
** This code really belongs in btree.c. But btree.c is getting too
}
}
sqlite3_mutex_enter(p->pBt->mutex);
+ p->locked = 1;
for(pLater=p->pNext; pLater; pLater=pLater->pNext){
if( pLater->wantToLock ){
sqlite3_mutex_enter(pLater->pBt->mutex);
p->wantToLock++;
if( !p->locked ){
sqlite3_mutex_enter(p->pBt->mutex);
+ p->locked = 1;
}
}
}
p->wantToLock--;
if( p->wantToLock==0 ){
sqlite3_mutex_leave(p->pBt->mutex);
+ p->locked = 0;
}
}
}