]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Adjustments to the page cache to try to avoid harmless TSAN warnings.
authordrh <drh@noemail.net>
Wed, 9 Jan 2019 14:49:58 +0000 (14:49 +0000)
committerdrh <drh@noemail.net>
Wed, 9 Jan 2019 14:49:58 +0000 (14:49 +0000)
FossilOrigin-Name: 383437be276719ac1c72688ae81017c63907ac561f2ffb8e42c43b012248f294

manifest
manifest.uuid
src/pcache1.c

index b54c3baa5b3d360f8735433f9d1322cf23373977..231a6b52c028fddb56653d5e689a10e2c1c59dee 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Improved\sdatabase\scorruption\sdetection\sin\sthe\sdbstat\svirtual\stable.
-D 2019-01-09T11:19:41.490
+C Adjustments\sto\sthe\spage\scache\sto\stry\sto\savoid\sharmless\sTSAN\swarnings.
+D 2019-01-09T14:49:58.180
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in d8b254f8bb81bab43c340d70d17dc3babab40fcc8a348c8255881f780a45fee6
@@ -504,7 +504,7 @@ F src/pager.h 217921e81eb5fe455caa5cda96061959706bcdd29ddb57166198645ef7822ac3
 F src/parse.y a3c0db595bc642c6ee1d72869842f7f5b0b6ebeb91c21d0a7cba631d27e7afbd
 F src/pcache.c 696a01f1a6370c1b50a09c15972bc3bee3333f8fcd1f2da8e9a76b1b062c59ee
 F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
-F src/pcache1.c ddc9fc7d9861cf3a1f30660264b76b1ae9e1dce5dbba085cf001d5cb6b41cf8c
+F src/pcache1.c fffd5250a323579384a3b3904302b9fe87e186ba24602af3013f749a0234ae98
 F src/pragma.c 20811b404b6d302a1bedd4b8af8aab2794c5e87ba1f5cb6b42dbc3266ad9c603
 F src/pragma.h fdd03d78a7497f74a3f652909f945328480089189526841ae829ce7313d98d13
 F src/prepare.c 18f1d2801ffb48b83fddf83375389886c788e98fdfb87eabe988cf53893602c7
@@ -1797,7 +1797,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 9d4c156fa26f80bb8f88b6ad8f24520a15af296de9c110604f6bd42c257455a0
-R 08f271c3d2a22f68d05d7a10015b5079
+P fc5ecc88f8a0855ba90039177ee284721b2035e4de56a1024e323216f011f0af
+R 6ed50b6875990a4b9a765f1f68bf10cd
 U drh
-Z 03110852217ebc64011b15a7274dc701
+Z 1ecb4b75bf2b55e36bc746d9d8508d17
index 5bb62bdd141c04824a5956cfe180ffc60d98b1e5..5e612f6fff7ed53234bcebf8f71766e7d3f9a6ce 100644 (file)
@@ -1 +1 @@
-fc5ecc88f8a0855ba90039177ee284721b2035e4de56a1024e323216f011f0af
\ No newline at end of file
+383437be276719ac1c72688ae81017c63907ac561f2ffb8e42c43b012248f294
\ No newline at end of file
index 13903216f661037c1e99fc04da82cf1756ac78c3..72e81bb2b2a7a99c6fccf7c54cde54b707573436 100644 (file)
@@ -168,6 +168,7 @@ struct PCache1 {
   unsigned int nMax;                  /* Configured "cache_size" value */
   unsigned int n90pct;                /* nMax*9/10 */
   unsigned int iMaxKey;               /* Largest key seen since xTruncate() */
+  unsigned int nPurgeableDummy;       /* pnPurgeable points here when not used*/
 
   /* Hash table of all pages. The following variables may only be accessed
   ** when the accessor is holding the PGroup mutex.
@@ -785,8 +786,7 @@ static sqlite3_pcache *pcache1Create(int szPage, int szExtra, int bPurgeable){
       pGroup->mxPinned = pGroup->nMaxPage + 10 - pGroup->nMinPage;
       pCache->pnPurgeable = &pGroup->nPurgeable;
     }else{
-      static unsigned int dummyCurrentPage;
-      pCache->pnPurgeable = &dummyCurrentPage;
+      pCache->pnPurgeable = &pCache->nPurgeableDummy;
     }
     pcache1LeaveMutex(pGroup);
     if( pCache->nHash==0 ){