summaryrefslogtreecommitdiff
path: root/cli/tests/subdir/racy_worker.js
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-04-10 00:15:17 +0200
committerGitHub <noreply@github.com>2020-04-10 00:15:17 +0200
commitbe71885628c3820cc4e62d229326de16a6830fec (patch)
tree664bac497658757a77b3d96cc71a1155613b20b1 /cli/tests/subdir/racy_worker.js
parentac215a24613636b6e84b37a86dc4711dfaa4f2cc (diff)
implement Worker.terminate() and self.close() (#4684)
Diffstat (limited to 'cli/tests/subdir/racy_worker.js')
-rw-r--r--cli/tests/subdir/racy_worker.js21
1 files changed, 21 insertions, 0 deletions
diff --git a/cli/tests/subdir/racy_worker.js b/cli/tests/subdir/racy_worker.js
new file mode 100644
index 000000000..83756b791
--- /dev/null
+++ b/cli/tests/subdir/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();
+ });
+ });
+}