From: drh Date: Wed, 9 Jan 2019 14:49:58 +0000 (+0000) Subject: Adjustments to the page cache to try to avoid harmless TSAN warnings. X-Git-Tag: version-3.27.0~191 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1757fed87f0705c8df065e5d697e989acd295a29;p=thirdparty%2Fsqlite.git Adjustments to the page cache to try to avoid harmless TSAN warnings. FossilOrigin-Name: 383437be276719ac1c72688ae81017c63907ac561f2ffb8e42c43b012248f294 --- diff --git a/manifest b/manifest index b54c3baa5b..231a6b52c0 100644 --- 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 diff --git a/manifest.uuid b/manifest.uuid index 5bb62bdd14..5e612f6fff 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -fc5ecc88f8a0855ba90039177ee284721b2035e4de56a1024e323216f011f0af \ No newline at end of file +383437be276719ac1c72688ae81017c63907ac561f2ffb8e42c43b012248f294 \ No newline at end of file diff --git a/src/pcache1.c b/src/pcache1.c index 13903216f6..72e81bb2b2 100644 --- a/src/pcache1.c +++ b/src/pcache1.c @@ -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 ){