-C Enhance\stests\sto\sensure\sthat\sblocking\slocks,\sand\snot\scalls\sto\sxSleep(),\sare\sbeing\sused\sby\sSQLITE_ENABLE_SETLK_TIMEOUT\sbuilds\swhen\sthey\sshould\sbe.
-D 2024-12-09T16:01:28.611
+C Test\sthe\scase\swhere\sa\sdb\sconnection\sblocks\sfor\sa\swhile\sand\sthen\ssuccessfully\sobtains\sthe\slock.
+D 2024-12-09T17:30:20.069
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
F test/walro2.test 33955a6fd874dd9724005e17f77fef89d334b3171454a1256fe4941a96766cdc
F test/walrofault.test c70cb6e308c443867701856cce92ad8288cd99488fa52afab77cca6cfd51af68
F test/walseh1.test bae700eb99519b6d5cd3f893c04759accc5a59c391d4189fe4dd6995a533442b
-F test/walsetlk.test 18dcf274891bd93916ca4ba831078f89ef99388c6fdd495745443ed2c1b2f382
+F test/walsetlk.test 910a8ef8cc500b0be5cf818e2fff7a4505186d33bf08147dc23e38f78d0b2016
F test/walshared.test 42e3808582504878af237ea02c42ca793e8a0efaa19df7df26ac573370dbc7a3
F test/walslow.test 0c51843836c9dcf40a5ac05aa781bfb977b396ee2c872d92bd48b79d5dd9aa23
F test/walthread.test 14b20fcfa6ae152f5d8e12f5dc8a8a724b7ef189f5d8ef1e2ceab79f2af51747
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 70b0cfb0493e3fe56645648b462cb035d0d791f95b2913b7622f08c1090338c0
-R 9de6f4b05e49f722496a553eef28dd0a
+P c892242bb642f7a6a961e310ed8b4f1e140f8ee32c00f50021c6011c6e7e1476
+R c5bbc43d548daaa55d847d34080f9ae5
U dan
-Z b306d8cfc696ddcddaf2101fbec84ebb
+Z 080db00c6e437599cb3a53612222f7cd
# Remove this line to create a well-formed Fossil manifest.
#-------------------------------------------------------------------------
reset_db
-sqlite3 db2 test.db
+
+testvfs tvfs -fullshm 1
+tvfs script xSleep_callback
+tvfs filter xSleep
+
+set ::sleep_count 0
+proc xSleep_callback {xSleep nMs} {
+ after [expr $nMs / 1000]
+ incr ::sleep_count
+}
+
+sqlite3 db2 test.db -vfs tvfs
db2 timeout 1000
+
do_execsql_test 3.0 {
PRAGMA journal_mode = wal;
CREATE TABLE x1(x, y);
list [catch { db2 eval {BEGIN EXCLUSIVE} } msg] $msg
} {1 {database is locked}}
+do_execsql_test 3.2 {
+ COMMIT;
+}
+
+testfixture_nb done {
+ sqlite3 db test.db
+ db eval {
+ BEGIN EXCLUSIVE;
+ INSERT INTO x1 VALUES(3, 4);
+ }
+ after 2000
+ db eval {
+ COMMIT
+ }
+}
+
+after 500
+db2 timeout 5000
+do_test 3.3 {
+ set t [lindex [time { db2 eval { BEGIN EXCLUSIVE } }] 0]
+ expr ($t>1000000)
+} {1}
+
+set bExpect 0
+if {$::sqlite_options(setlk_timeout)==1} {
+ set bExpect 1
+}
+do_test 3.4 {
+ expr {$::sleep_count > 0}
+} $bExpect
+
+do_execsql_test -db db2 3.5 {
+ INSERT INTO x1 VALUES(5, 6);
+ COMMIT;
+ SELECT * FROM x1;
+} {1 2 3 4 5 6}
+
+db2 close
+tvfs delete
+
finish_test
+