From: mistachkin Date: Mon, 14 Sep 2015 22:52:37 +0000 (+0000) Subject: Re-check sqlite3GlobalConfig.isInit after the mutex subsystem has been initialized. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5d5bea03da94c8ad6e9ab94fb81828118e1470cf;p=thirdparty%2Fsqlite.git Re-check sqlite3GlobalConfig.isInit after the mutex subsystem has been initialized. FossilOrigin-Name: fea8c0b281b374f2e0b82bec8788275e963a9401 --- diff --git a/manifest b/manifest index 7d3bf391d2..7874a645f1 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\sstatic\sVFS\smutexes\sto\sthe\sprimary\sheader\sfile\scomments. -D 2015-09-13T20:15:01.158 +C Re-check\ssqlite3GlobalConfig.isInit\safter\sthe\smutex\ssubsystem\shas\sbeen\sinitialized. +D 2015-09-14T22:52:37.711 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in f85066ce844a28b671aaeeff320921cd0ce36239 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -305,7 +305,7 @@ F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e F src/lempar.c d344a95d60c24e2f490ee59db9784b1b17439012 F src/loadext.c f0b66d28e377fd6c6d36cc9d92df1ff251ebee44 -F src/main.c e17fcffae4306a9b8334faf3bac80d7396850b54 +F src/main.c babadd4638315032625ad64139a0b8c09ac77f5d F src/malloc.c 3a37ce6979a40f499d8cea9e9ab4e8517854d35d F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c abe6ee469b6c5a35c7f22bfeb9c9bac664a1c987 @@ -1386,7 +1386,10 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 786333e05a75406bbd0b5c9c7beb8f16022eabec -R 1a3f3f98d74800359cb14e46ec6e0053 +P 9a867d9fbe74fe2b33d55e32737a66e9a77b7466 +R 7f32f01a4bbb9942fef5c56e823eae40 +T *branch * mutexInitIsInitReCheck +T *sym-mutexInitIsInitReCheck * +T -sym-trunk * U mistachkin -Z 7262f2bc6346d75912550091a71aa522 +Z eb7dbc33a06a7860a25783953db56f61 diff --git a/manifest.uuid b/manifest.uuid index 671ed1e6ca..1af6157f49 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -9a867d9fbe74fe2b33d55e32737a66e9a77b7466 \ No newline at end of file +fea8c0b281b374f2e0b82bec8788275e963a9401 \ No newline at end of file diff --git a/src/main.c b/src/main.c index 575cad92c5..dce5606941 100644 --- a/src/main.c +++ b/src/main.c @@ -171,7 +171,13 @@ int sqlite3_initialize(void){ */ MUTEX_LOGIC( pMaster = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER); ) sqlite3_mutex_enter(pMaster); - sqlite3GlobalConfig.isMutexInit = 1; + if( sqlite3GlobalConfig.isInit ){ + assert( sqlite3GlobalConfig.isMutexInit ); + assert( sqlite3GlobalConfig.isMallocInit ); + sqlite3_mutex_leave(pMaster); + return SQLITE_OK; + } + sqlite3GlobalConfig.isMutexInit = 1; /* possibly redundant */ if( !sqlite3GlobalConfig.isMallocInit ){ rc = sqlite3MallocInit(); }