Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Expand the header comment to clarify the purpose for the sqlite3MemoryBarrier() function. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
b89495ae09aa0e9652475b2ba1943dfd |
User & Date: | drh 2015-09-26 03:23:29 |
Context
2015-09-26
| ||
03:31 | Fix the title of the documentation on sqlite3_value_subtype(). This is a comment change only. check-in: b7902354 user: drh tags: trunk | |
03:23 | Expand the header comment to clarify the purpose for the sqlite3MemoryBarrier() function. check-in: b89495ae user: drh tags: trunk | |
01:28 | Remove an assert in the windows worker-thread logic that can fail in a race condition. check-in: d7bfb960 user: drh tags: trunk | |
Changes
Changes to src/mutex_unix.c.
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
}
static int pthreadMutexNotheld(sqlite3_mutex *p){
return p->nRef==0 || pthread_equal(p->owner, pthread_self())==0;
}
#endif
/*
** Try to provide a memory barrier operation, needed for initialization only.
*/
void sqlite3MemoryBarrier(void){
#if defined(SQLITE_MEMORY_BARRIER)
SQLITE_MEMORY_BARRIER;
#elif defined(__GNUC__) && GCC_VERSION>=4001000
__sync_synchronize();
#endif
|
| > > |
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
} static int pthreadMutexNotheld(sqlite3_mutex *p){ return p->nRef==0 || pthread_equal(p->owner, pthread_self())==0; } #endif /* ** Try to provide a memory barrier operation, needed for initialization ** and also for the implementation of xShmBarrier in the VFS in cases ** where SQLite is compiled without mutexes. */ void sqlite3MemoryBarrier(void){ #if defined(SQLITE_MEMORY_BARRIER) SQLITE_MEMORY_BARRIER; #elif defined(__GNUC__) && GCC_VERSION>=4001000 __sync_synchronize(); #endif |
Changes to src/mutex_w32.c.
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
static int winMutexNotheld(sqlite3_mutex *p){
DWORD tid = GetCurrentThreadId();
return winMutexNotheld2(p, tid);
}
#endif
/*
** Try to provide a memory barrier operation, needed for initialization only.
*/
void sqlite3MemoryBarrier(void){
#if defined(SQLITE_MEMORY_BARRIER)
SQLITE_MEMORY_BARRIER;
#elif defined(__GNUC__)
__sync_synchronize();
#else
|
| > > |
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
static int winMutexNotheld(sqlite3_mutex *p){ DWORD tid = GetCurrentThreadId(); return winMutexNotheld2(p, tid); } #endif /* ** Try to provide a memory barrier operation, needed for initialization ** and also for the xShmBarrier method of the VFS in cases when SQLite is ** compiled without mutexes (SQLITE_THREADSAFE=0). */ void sqlite3MemoryBarrier(void){ #if defined(SQLITE_MEMORY_BARRIER) SQLITE_MEMORY_BARRIER; #elif defined(__GNUC__) __sync_synchronize(); #else |