summaryrefslogtreecommitdiff
path: root/cli/tests/workers/bench_large_message.ts
diff options
context:
space:
mode:
authorTim Ramlot <42113979+inteon@users.noreply.github.com>2021-05-11 21:09:09 +0200
committerGitHub <noreply@github.com>2021-05-11 21:09:09 +0200
commit635253bd3a3895f49e6c9606beb852da22fee205 (patch)
treecec9d75354b4e985a376f888564ecb63c99f2643 /cli/tests/workers/bench_large_message.ts
parent0d319161bc19a520df653bc0c8386f14a68efbdb (diff)
feat(runtime/worker): Structured cloning worker message passing (#9323)
This commit upgrade "Worker.postMessage()" implementation to use structured clone algorithm instead of non-spec compliant JSON serialization.
Diffstat (limited to 'cli/tests/workers/bench_large_message.ts')
-rw-r--r--cli/tests/workers/bench_large_message.ts31
1 files changed, 31 insertions, 0 deletions
diff --git a/cli/tests/workers/bench_large_message.ts b/cli/tests/workers/bench_large_message.ts
new file mode 100644
index 000000000..53076e711
--- /dev/null
+++ b/cli/tests/workers/bench_large_message.ts
@@ -0,0 +1,31 @@
+// Copyright 2020 the Deno authors. All rights reserved. MIT license.
+
+function oneWorker(i: number) {
+ return new Promise<void>((resolve) => {
+ let countDown = 10;
+ const worker = new Worker(
+ new URL("worker_large_message.js", import.meta.url).href,
+ { type: "module" },
+ );
+ worker.onmessage = (e): void => {
+ if (countDown > 0) {
+ countDown--;
+ return;
+ }
+ worker.terminate();
+ resolve();
+ };
+ worker.postMessage("hi " + i);
+ });
+}
+
+function bench() {
+ const promises = [];
+ for (let i = 0; i < 50; i++) {
+ promises.push(oneWorker(i));
+ }
+
+ return Promise.all(promises);
+}
+
+bench();