summaryrefslogtreecommitdiff
path: root/cli/tests/workers/racy_worker.js
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests/workers/racy_worker.js')
-rw-r--r--cli/tests/workers/racy_worker.js21
1 files changed, 21 insertions, 0 deletions
diff --git a/cli/tests/workers/racy_worker.js b/cli/tests/workers/racy_worker.js
new file mode 100644
index 000000000..83756b791
--- /dev/null
+++ b/cli/tests/workers/racy_worker.js
@@ -0,0 +1,21 @@
+// See issue for details
+// https://github.com/denoland/deno/issues/4080
+//
+// After first call to `postMessage() this worker schedules
+// [close(), postMessage()] ops on the same turn of microtask queue
+// (because message is rather big).
+// Only single `postMessage()` call should make it
+// to host, ie. after calling `close()` no more code should be run.
+
+setTimeout(() => {
+ close();
+}, 50);
+
+while (true) {
+ await new Promise((done) => {
+ setTimeout(() => {
+ postMessage({ buf: new Array(999999) });
+ done();
+ });
+ });
+}