diff options
author | drh <drh@noemail.net> | 2015-09-06 02:51:04 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2015-09-06 02:51:04 +0000 |
commit | 6081c1dbdf7730752bbde89ebb17d01bb30bf8f0 (patch) | |
tree | e82661b7eaaab7bde1934ddb05ecd9cdd9a2da60 /src/mutex_unix.c | |
parent | 0b8d255c37ea9830cecabb57f1c2ba6305eacc44 (diff) | |
download | sqlite-6081c1dbdf7730752bbde89ebb17d01bb30bf8f0.tar.gz sqlite-6081c1dbdf7730752bbde89ebb17d01bb30bf8f0.zip |
Add a memory barrier to the mutex initialization logic, try to work around
an issue reported by WebKit.
FossilOrigin-Name: 11a9a786ec06403addb47f5c6fb142b382fae522
Diffstat (limited to 'src/mutex_unix.c')
-rw-r--r-- | src/mutex_unix.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mutex_unix.c b/src/mutex_unix.c index 0a493fa6a..e181ba5bd 100644 --- a/src/mutex_unix.c +++ b/src/mutex_unix.c @@ -81,6 +81,18 @@ static int pthreadMutexNotheld(sqlite3_mutex *p){ #endif /* +** Try to provide a memory barrier operation, needed for initialization only. +*/ +void sqlite3MemoryBarrier(void){ +#if defined(__GNUC__) + __sync_synchronize(); +#endif +#ifdef SQLITE_MEMORY_BARRIER + SQLITE_MEMORY_BARRIER; +#endif +} + +/* ** Initialize and deinitialize the mutex subsystem. */ static int pthreadMutexInit(void){ return SQLITE_OK; } |