]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add new memory barriers during initialization.
authordrh <drh@noemail.net>
Wed, 29 Jan 2020 13:10:50 +0000 (13:10 +0000)
committerdrh <drh@noemail.net>
Wed, 29 Jan 2020 13:10:50 +0000 (13:10 +0000)
FossilOrigin-Name: a9b2adc5d61790abd86839d12e7ecb98a85d7e4cde5f94558530e32449d9e483

manifest
manifest.uuid
src/main.c
src/mutex.c
test/speedtest1.c

index e828e8f445c6227a491e287943993605e80c8b40..33e1f4511e816d9385bae4cc8dc6650b0311f2c6 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Modify\sa\scouple\sof\sFTS\stest\scases\sso\sthat\sthey\swork\son\sbig-endian\splatforms.
-D 2020-01-29T12:37:59.446
+C Add\snew\smemory\sbarriers\sduring\sinitialization.
+D 2020-01-29T13:10:50.760
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -495,7 +495,7 @@ F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
 F src/insert.c 2d130e0480cff4c20946c932fcf0cbf97e52b200c22c7f4f51b47b739994ffe5
 F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
 F src/loadext.c 8cd803f1747c03a50b32fe87ebfb5851998d0cdafefe02737daa95e0616b42bb
-F src/main.c ffaa1308ee8ad7cf70bddc9a9fe2d2d66799e534b12ec876562d26a33a30d745
+F src/main.c b7234b706ef72c4aa99e8e379284450b57ff83006aa33c36c1cceec0a6488e6e
 F src/malloc.c eaa4dc9602ce28b077f7de2eb275db2be270c5cc56d7fec5466301bd9b80e2f5
 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
 F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
@@ -505,7 +505,7 @@ F src/mem5.c 9bf955937b07f8c32541c8a9991f33ce3173d944
 F src/memdb.c 02a5fcec19b9d40dd449ca802dc1b2e8f93f255fbf2a886277a3c3800d8d35db
 F src/memjournal.c 7561c01c90958f3ba9bc6cb2d857123d932bdfa5539ea34427a0957b2e35154d
 F src/msvc.h 3a15918220367a8876be3fa4f2abe423a861491e84b864fb2b7426bf022a28f8
-F src/mutex.c bae36f8af32c22ad80bbf0ccebec63c252b6a2b86e4d3e42672ff287ebf4a604
+F src/mutex.c 5e3409715552348732e97b9194abe92fdfcd934cfb681df4ba0ab87ac6c18d25
 F src/mutex.h a7b2293c48db5f27007c3bdb21d438873637d12658f5a0bf8ad025bb96803c4a
 F src/mutex_noop.c 9d4309c075ba9cc7249e19412d3d62f7f94839c4
 F src/mutex_unix.c aaf9ebc3f89df28483c52208497a99a02cc3650011422fc9d4c57e4392f7fe58
@@ -1371,7 +1371,7 @@ F test/speed3.test 694affeb9100526007436334cf7d08f3d74b85ef
 F test/speed4.test abc0ad3399dcf9703abed2fff8705e4f8e416715
 F test/speed4p.explain 6b5f104ebeb34a038b2f714150f51d01143e59aa
 F test/speed4p.test 377a0c48e5a92e0b11c1c5ebb1bc9d83a7312c922bc0cb05970ef5d6a96d1f0c
-F test/speedtest1.c f3bfe3c6a87cbd88e4c4e38005d972bcc1019d1b2fe9569425f86629b11f6c31
+F test/speedtest1.c d564e7689a731f691adfe2cf3f3f735d3e11f100eebb065e2a0a267fdc39fb26
 F test/spellfix.test 951a6405d49d1a23d6b78027d3877b4a33eeb8221dcab5704b499755bb4f552e
 F test/spellfix2.test dfc8f519a3fc204cb2dfa8b4f29821ae90f6f8c3
 F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33
@@ -1857,7 +1857,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 59a31b16b54a0068c81ee65bc2fa905c2c826e98da3a7ffd8c3ea860a2827b4a
-R 0a915f03fa7bc6f07682ca044d0b1ce8
+P b20503aaf5b6595afafee6aa2bc6276354a62b0f583f6d94e31fedfdfc130347
+R 4edebb01c9db28e29d1a76ee97af4238
 U drh
-Z af9d0272cd165cddf4355dcdebb52660
+Z 5f0bc71b47ed585eee4e9d2ffd3217c7
index d13f3dbe6794a45e4bd4f1b7a8e25491dc13cde8..5371f795b48968f4691e4e66fe3abe1c687dba3a 100644 (file)
@@ -1 +1 @@
-b20503aaf5b6595afafee6aa2bc6276354a62b0f583f6d94e31fedfdfc130347
\ No newline at end of file
+a9b2adc5d61790abd86839d12e7ecb98a85d7e4cde5f94558530e32449d9e483
\ No newline at end of file
index 3983f083b23ab40ec45bea75c7d06fb9cdaa14e8..60052437ddfe57ae3a5a85989f67d9a4102f5476 100644 (file)
@@ -161,7 +161,10 @@ int sqlite3_initialize(void){
   ** must be complete.  So isInit must not be set until the very end
   ** of this routine.
   */
-  if( sqlite3GlobalConfig.isInit ) return SQLITE_OK;
+  if( sqlite3GlobalConfig.isInit ){
+    sqlite3MemoryBarrier();
+    return SQLITE_OK;
+  }
 
   /* Make sure the mutex subsystem is initialized.  If unable to 
   ** initialize the mutex subsystem, return early with the error.
index 3ad7b89edc2510639b61b472e0db8804e28fc8b6..13a9fca15bba21408510cb4c23df8b96081dcca3 100644 (file)
@@ -254,6 +254,7 @@ int sqlite3MutexInit(void){
   GLOBAL(int, mutexIsInit) = 1;
 #endif
 
+  sqlite3MemoryBarrier();
   return rc;
 }
 
index ccb8a44e186b8212dddb527d5d8645a312cd65e9..68ca5788cc4c46b67dd390a328c5aab1acf3efed 100644 (file)
@@ -2148,7 +2148,8 @@ int main(int argc, char **argv){
     sqlite3_config(SQLITE_CONFIG_LOOKASIDE, 0, 0);
   }
 #endif
+  sqlite3_initialize();
+
   /* Open the database and the input file */
   if( sqlite3_open(zDbName, &g.db) ){
     fatal_error("Cannot open database file: %s\n", zDbName);