Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Experimental changes to avoid recusrively calling xMutexInit. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | mutexInitCmpSwap |
Files: | files | file ages | folders |
SHA1: |
c9400ff167d9520119081c9b92436794 |
User & Date: | mistachkin 2015-09-13 18:45:50.134 |
Context
2015-09-23
| ||
15:54 | Merge updates from trunk. (Closed-Leaf check-in: 6b85f8cd4d user: mistachkin tags: mutexInitCmpSwap) | |
2015-09-13
| ||
18:45 | Experimental changes to avoid recusrively calling xMutexInit. (check-in: c9400ff167 user: mistachkin tags: mutexInitCmpSwap) | |
18:43 | Merge updates from trunk. (check-in: b42c2e2076 user: mistachkin tags: mutexInitCmpSwap) | |
Changes
Changes to src/mutex.c.
︙ | |||
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | + + - - + + + + + | pTo->xMutexAlloc = pFrom->xMutexAlloc; } /* ** Initialize the mutex system. */ int sqlite3MutexInit(void){ static int initPending = 0; int rc; if( sqlite3CompareAndSwap((void * volatile *)&sqlite3GlobalConfig.pMutex, 0, &sqlite3GlobalConfig.mutex)==0 || mutexIsInvalid() ){ /* If the mutex implementation pointer has not been set, then the user ** did not install a mutex implementation via sqlite3_config() prior to ** sqlite3_initialize() being called. This block copies the pointers ** for the default implementation into the sqlite3GlobalConfig structure. */ sqlite3_mutex_methods const *pFrom; if( sqlite3GlobalConfig.bCoreMutex ){ pFrom = sqlite3DefaultMutex(); }else{ pFrom = sqlite3NoopMutex(); } mutexCopy(&sqlite3GlobalConfig.mutex, pFrom); sqlite3MemoryBarrier(); } if( !initPending ){ |
︙ |