]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Minor tweak to the OPFS async proxy to attempt to account for a spurious high-load...
authorstephan <stephan@noemail.net>
Tue, 30 May 2023 14:10:28 +0000 (14:10 +0000)
committerstephan <stephan@noemail.net>
Tue, 30 May 2023 14:10:28 +0000 (14:10 +0000)
FossilOrigin-Name: a61467d1fbb7a2804bfdc685a38e0b738747b9afd42c25a78a938b114a822f61

ext/wasm/api/sqlite3-opfs-async-proxy.js
manifest
manifest.uuid

index ddcad8f61cb28cd24982ca2cb51a244b30eb4622..179a8163586a3d20f2fe1a02b98ced04b8809b9e 100644 (file)
@@ -818,9 +818,24 @@ const installAsyncProxy = function(self){
     }
     while(!flagAsyncShutdown){
       try {
-        if('timed-out'===Atomics.wait(
+        if('not-equal'!==Atomics.wait(
           state.sabOPView, state.opIds.whichOp, 0, state.asyncIdleWaitTime
         )){
+          /* Maintenance note: we compare against 'not-equal' because
+
+             https://github.com/tomayac/sqlite-wasm/issues/12
+
+             is reporting that this occassionally, under high loads,
+             returns 'ok', which leads to the whichOp being 0 (which
+             isn't a valid operation ID and leads to an exception,
+             along with a corresponding ugly console log
+             message). Unfortunately, the conditions for that cannot
+             be reliably reproduced. The only place in our code which
+             writes a 0 to the state.opIds.whichOp SharedArrayBuffer
+             index is a few lines down from here, and that instance
+             is required in order for clear communication between
+             the sync half of this proxy and this half.
+          */
           await releaseImplicitLocks();
           continue;
         }
index 811054b0def6bc3dfd835243ce306aac92a7d8c2..f27eb08f56e17421df166353567ef48c939852a2 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Minor\sinternal\sJS\sdoc\sfix.\sNo\scode\schanges.
-D 2023-05-30T13:27:57.364
+C Minor\stweak\sto\sthe\sOPFS\sasync\sproxy\sto\sattempt\sto\saccount\sfor\sa\sspurious\shigh-load\sconsole\serror\smessage\swhich\swas\sreported\svia\sthe\ssqlite-wasm\snpm\sproject.
+D 2023-05-30T14:10:28.641
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -499,7 +499,7 @@ F ext/wasm/api/sqlite3-api-oo1.js 9678dc4d9a5d39632b6ffe6ea94a023119260815bf32f2
 F ext/wasm/api/sqlite3-api-prologue.js 17f4ec398ba34c5c666fea8e8c4eb82064a35b302f2f2eb355283cd8d3f68ed5
 F ext/wasm/api/sqlite3-api-worker1.js 9f32af64df1a031071912eea7a201557fe39b1738645c0134562bb84e88e2fec
 F ext/wasm/api/sqlite3-license-version-header.js 0c807a421f0187e778dc1078f10d2994b915123c1223fe752b60afdcd1263f89
-F ext/wasm/api/sqlite3-opfs-async-proxy.js 70914ae97784d3028150bbf252e07a423056c42cc345903c81b5fae661ce512f
+F ext/wasm/api/sqlite3-opfs-async-proxy.js 961bbc3ccc1fa4e91d6519a96e8811ad7ae60173bd969fee7775dacb6eee1da2
 F ext/wasm/api/sqlite3-v-helper.js e5c202a9ecde9ef818536d3f5faf26c03a1a9f5192b1ddea8bdabf30d75ef487
 F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js 05f2563ddebfdc7a0f0ac0eb7cb381bb72043299aae1600ba9367c12f52b3fcc
 F ext/wasm/api/sqlite3-wasi.h 25356084cfe0d40458a902afb465df8c21fc4152c1d0a59b563a3fba59a068f9
@@ -2071,8 +2071,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 736a79c1491065f4ee77ce644af0e529e555ca733c78dbd55487d55d4ddbe5bd
-R 5f44747fc37f6e1d3512c2672dbffcc6
+P 68abee3c1bf4e9ff632fccaa6ac7c5c4cdf55c4ff1749830ae3bd5ff6d55ebb2
+R e35de080a5d8c160cf20199fde831e23
 U stephan
-Z 8e71646b7ab88f2930a4cf3268c6bfe3
+Z a6e965e2f0231d43e4b927decea2e440
 # Remove this line to create a well-formed Fossil manifest.
index 56eab8bc3d5ef23c0e171c547a55d7411206b35d..9393709a8cf9b6b156aab68ad074b16cba72833c 100644 (file)
@@ -1 +1 @@
-68abee3c1bf4e9ff632fccaa6ac7c5c4cdf55c4ff1749830ae3bd5ff6d55ebb2
\ No newline at end of file
+a61467d1fbb7a2804bfdc685a38e0b738747b9afd42c25a78a938b114a822f61
\ No newline at end of file