aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2018-10-02 20:16:41 +0000
committerdrh <drh@noemail.net>2018-10-02 20:16:41 +0000
commit9b7e8e10f2049456068868fe4881b26990ffeaf6 (patch)
treeb82dc78102cadea17dceb1f59221b931e5decf87
parent8820c8d3eea5e9305064657f5be4ed96fa122014 (diff)
downloadsqlite-9b7e8e10f2049456068868fe4881b26990ffeaf6.tar.gz
sqlite-9b7e8e10f2049456068868fe4881b26990ffeaf6.zip
Add an additional assert() verifying mutex invariants on the
unixShmSystemLock() routine in the unix VFS. FossilOrigin-Name: cb1511065d5348c5b3015dc9d690fc5d519a14ffdfa7164bb552a4fa686ad142
-rw-r--r--manifest12
-rw-r--r--manifest.uuid2
-rw-r--r--src/os_unix.c1
3 files changed, 8 insertions, 7 deletions
diff --git a/manifest b/manifest
index c0a6b1a60..7bc0eac53 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Additional\sfield\sname\schanges\sand\scommit\sfixes\sassociated\swith\sshared-memory\nlocking\sin\sthe\sunix\sVFS,\sto\simprove\smaintainability.\s\sNo\slogic\schanges.
-D 2018-10-02T19:58:08.325
+C Add\san\sadditional\sassert()\sverifying\smutex\sinvariants\son\sthe\nunixShmSystemLock()\sroutine\sin\sthe\sunix\sVFS.
+D 2018-10-02T20:16:41.170
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F Makefile.in 01e95208a78b57d056131382c493c963518f36da4c42b12a97eb324401b3a334
@@ -487,7 +487,7 @@ F src/os.c 8aeb0b0f40f8f5b0da03fe49706695adaf42d2f516ab95abc72e86c245e119de
F src/os.h 48388821692e87da174ea198bf96b1b2d9d83be5dfc908f673ee21fafbe0d432
F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
-F src/os_unix.c fd755a51cc621b14c6b5816912e8e103ccc28c46d64f8173f22ba992ddbe9fd3
+F src/os_unix.c d483d738183c822cc96ec5539424eee5b9847c882dee57f93b880aaf46a7af19
F src/os_win.c 070cdbb400097c6cda54aa005356095afdc2f3ee691d17192c54724ef146a971
F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
F src/pager.c a0d8f686ef64549ad5b356fd30429bd9ee7a06dd42b4d6faa096352ff26b1c5b
@@ -1770,7 +1770,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 3e9f1635271c92dce5324728b4ee1cc1a1856ec3c60b1b512a652c21e010e63e
-R 4c540d033fc87107981e8569f09af526
+P 9280774a4bbc665d70f346d258768cbcca3e0e77791473aecfd7d0e87810ab31
+R fbea89096e881563b5cf5b6d1bddc038
U drh
-Z d5d2b74c6598d9bd4b46abde946440e8
+Z 844839c6466e9a3eaf0ac358bf4608fd
diff --git a/manifest.uuid b/manifest.uuid
index 50977535b..25b0dcf9a 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-9280774a4bbc665d70f346d258768cbcca3e0e77791473aecfd7d0e87810ab31 \ No newline at end of file
+cb1511065d5348c5b3015dc9d690fc5d519a14ffdfa7164bb552a4fa686ad142 \ No newline at end of file
diff --git a/src/os_unix.c b/src/os_unix.c
index 1b18e874e..55f220ea9 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -4288,6 +4288,7 @@ static int unixShmSystemLock(
/* Access to the unixShmNode object is serialized by the caller */
pShmNode = pFile->pInode->pShmNode;
assert( pShmNode->nRef==0 || sqlite3_mutex_held(pShmNode->pShmMutex) );
+ assert( pShmNode->nRef>0 || unixMutexHeld() );
/* Shared locks never span more than one byte */
assert( n==1 || lockType!=F_RDLCK );