From: drh Date: Tue, 17 Mar 2015 16:59:57 +0000 (+0000) Subject: Transient locks in WAL mode can now block in order to resolve priority X-Git-Tag: version-3.8.9~69 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a5eaece9321355345e34345560b18ab5b886c0ab;p=thirdparty%2Fsqlite.git Transient locks in WAL mode can now block in order to resolve priority inversions. FossilOrigin-Name: ec2f46de531ec8ef91981b19b48ab64db7727264 --- a5eaece9321355345e34345560b18ab5b886c0ab diff --cc manifest index 781a270193,881ae7d644..01201de728 --- a/manifest +++ b/manifest @@@ -1,7 -1,7 +1,7 @@@ - C Make\sSQLite\sslightly\smore\slikely\sto\suse\san\sauto-index\swithin\sa\ssub-query. - D 2015-03-16T20:40:00.496 -C Arrange\sfor\ssome\sof\sthe\stransient\slocks\sin\sWAL\smode\sto\sblock,\sas\sa\ssingle\nto\sthe\sOS\sto\sfix\spriority\sinversions. -D 2015-03-10T20:22:35.302 ++C Transient\slocks\sin\sWAL\smode\scan\snow\sblock\sin\sorder\sto\sresolve\spriority\ninversions. ++D 2015-03-17T16:59:57.519 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f -F Makefile.in 2f643d6968dfc0b82d2e546a0525a39079f9e928 +F Makefile.in 88a3e6261286db378fdffa1124cad11b3c05f5bb F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.msc 529e61cd9d29a3934758b4b3a0bb649b6c653481 F Makefile.vxworks e1b65dea203f054e71653415bd8f96dcaed47858 @@@ -232,7 -232,7 +232,7 @@@ F src/resolve.c f4d79e31ffa5820c2e3d174 F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e F src/select.c 94e016b6733b1d39a2f4c8d431155b4c2897d907 F src/shell.c cce82ca26392578a4a1ee927dfe55ea3411c7c92 - F src/sqlite.h.in 356e69db9500b3fd11705c21ca247e19b95884a3 -F src/sqlite.h.in 4eb59d93caec4b60eada51d3211087746187edef ++F src/sqlite.h.in ce547ac4df17e8d996679f7a385911b3a0c52d48 F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad F src/sqlite3ext.h 17d487c3c91b0b8c584a32fbeb393f6f795eea7d F src/sqliteInt.h fae682c2b4dfbe489b134d74521c41c088f16ab1 @@@ -304,10 -304,10 +304,10 @@@ F src/vdbesort.c 6d64c5448b64851b99931e F src/vdbetrace.c 7e4222955e07dd707a2f360c0eb73452be1cb010 F src/vtab.c 699f2b8d509cfe379c33dde33827875d5b030e01 F src/vxworks.h c18586c8edc1bddbc15c004fa16aeb1e1342b4fb - F src/wal.c 39303f2c9db02a4e422cd8eb2c8760420c6a51fe + F src/wal.c 878c8e1a51cb2ec45c395d26b7d5cd9e1a098e4a F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4 F src/walker.c c253b95b4ee44b21c406e2a1052636c31ea27804 -F src/where.c eb141b075776e9864d38f279333e2472a8653202 +F src/where.c 42ce3fd5ec9fe050f623be358cfddee01c1f6286 F src/whereInt.h cbe4aa57326998d89e7698ca65bb7c28541d483c F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 @@@ -1245,7 -1241,10 +1245,7 @@@ F tool/vdbe_profile.tcl 67746953071a9f8 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f - P 34779c528f1817d6ec34216b58fb4277956b5167 - R 20e702b8205b517ce2cb7b49f472a434 - U dan - Z 33f45126f2bf7daffd881933acc4eaa9 -P 8d0b11c96e15556dd65ced05708a832aef134e69 -R e3a6235cb886b3e146e5aa9fea4e9436 -T *branch * wal-blocking-lock -T *sym-wal-blocking-lock * -T -sym-trunk * ++P ab832336f4a28193c4d2b61e833564822a7b86a8 c6e6d5f4e06c3ac0bfb620c0c728fbc7230c4a02 ++R e9615c177cbff927553c4cf3589d469c + U drh -Z 53b7d268fee9eb6c03e124e757f212c1 ++Z 0b12e1121ffbe338a20dac08008c6f99 diff --cc manifest.uuid index cc066477d9,e908b35f97..804167befe --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - ab832336f4a28193c4d2b61e833564822a7b86a8 -c6e6d5f4e06c3ac0bfb620c0c728fbc7230c4a02 ++ec2f46de531ec8ef91981b19b48ab64db7727264 diff --cc src/sqlite.h.in index 06e0f7eb9f,f0f6f5ddcf..483534e494 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@@ -945,6 -945,13 +945,13 @@@ struct sqlite3_io_methods ** pointed to by the pArg argument. This capability is used during testing ** and only needs to be supported when SQLITE_TEST is defined. ** + **
  • [[SQLITE_FCNTL_WAL_BLOCK]] -** The [SQLITE_FCNTL_WAL_BLOCK] is a single to the VFS layer that it might ++** The [SQLITE_FCNTL_WAL_BLOCK] is a signal to the VFS layer that it might + ** be advantageous to block on the next WAL lock if the lock is not immediately -** available. The WAL subsystem issues this ioctl() during some rare ++** available. The WAL subsystem issues this signal during rare + ** circumstances in order to fix a problem with priority inversion. + ** Applications should not use this file-control. + ** ** */ #define SQLITE_FCNTL_LOCKSTATE 1