/* async thread will take over here */;
const t = performance.now();
while('not-equal'!==Atomics.wait(state.sabOPView, state.opIds.rc, -1)){
- /* See discussion at https://github.com/sqlite/sqlite-wasm/issues/12 */
+ /*
+ The reason for this loop is burried in the details of
+ a long discussion at:
+
+ https://github.com/sqlite/sqlite-wasm/issues/12
+
+ Summary: in at least one browser flavor, under high loads,
+ this wait() call can, on rare occasion, end up returning
+ 'ok', which indicates that it's returning _without_ the
+ other half of the proxy having called Atomics.notify(). When
+ this happens, we just wait() again.
+ */
}
- /* When this wait() call returns, the async half will have
- completed the operation and reported its results. */;
+ /* When the above wait() call returns 'not-equal', the async
+ half will have completed the operation and reported its results
+ in the state.opIds.rc slot of the SAB. */
const rc = Atomics.load(state.sabOPView, state.opIds.rc);
metrics[op].wait += performance.now() - t;
if(rc && state.asyncS11nExceptions){
-C Proposed\sworkaround\sfor\sthe\s"errant\sop"\scase\sin\sthe\sOPFS\sVFS,\sas\sdiscussed\sin\s[https://github.com/sqlite/sqlite-wasm/issues/12\s|\sissue\s#12\sof\sthe\snpm\sdistribution].
-D 2024-07-11T12:36:28.840
+C Add\ssome\sdocs\sexplaining\s[64f4f3cd878b1a72].
+D 2024-07-11T12:57:58.720
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F ext/wasm/api/sqlite3-opfs-async-proxy.js 881af4643f037b6590c491cef5fac8bcdd4118993197a1fa222ccb8b01e3504a
F ext/wasm/api/sqlite3-vfs-helper.c-pp.js 3f828cc66758acb40e9c5b4dcfd87fd478a14c8fb7f0630264e6c7fa0e57515d
F ext/wasm/api/sqlite3-vfs-opfs-sahpool.c-pp.js 8433ee332d5f5e39fb19427fccb7bad7f44aa99b5504daad3343fc128c311e78
-F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js 594b977dd78b0f1908acb21c8dcd29484182a243c5c43ecc4ca381a0a957c046
+F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js 1d0a2d9d9c8b1eb0126e1abd00ef26a9be9d348786d7e415556ecc345832eabe
F ext/wasm/api/sqlite3-vtab-helper.c-pp.js a2fcbc3fecdd0eea229283584ebc122f29d98194083675dbe5cb2cf3a17fe309
F ext/wasm/api/sqlite3-wasm.c 9267174b9b0591b4f71193542ab57adf95bb9415f7d3453acf4a8ca8052f5e6c
F ext/wasm/api/sqlite3-worker1-promiser.c-pp.js 46f303ba8ddd1b2f0a391798837beddfa72e8c897038c8047eda49ce7d5ed46b
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P bcef3f71a2f68768819d9f716f2c29e752fb173df1506469c8669d95ecc2ff50
-R 6ee8d5e65620ff8ee09c10bb2590f6a1
-T *branch * opfs-errant-op
-T *sym-opfs-errant-op *
-T -sym-trunk * Cancelled\sby\sbranch.
+P 64f4f3cd878b1a723caa0cd54b21f10fdb27d4e2ecb19fc233cbc8dd9d06f259
+R 14a1d62c6182eceaa22bb6feac58e8ac
U stephan
-Z d907f5fbcee0cc87b9f95edf029b0756
+Z d0a56f821b38fd7e590974af97a06665
# Remove this line to create a well-formed Fossil manifest.