/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
deps/v8/test/mjsunit/wasm/shared-arraybuffer-worker-simple-gc.js
85 строк
2 KB
Michaël Zasso
deps: update V8 to 12.8.374.13
16 авг 2024, 17:03
Не верифицирован
16 авг 2024, 17:03
9d7cd9b
Код
Авторство
О чём код?
// Copyright 2019 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Flags: --expose-gc const kNumIterations = 10; function NewWorker() { function workerCode() { onmessage = ({data:msg}) => { if (msg.memory) postMessage("ack"); if (msg.quit) postMessage("bye"); gc(); } } return new Worker(workerCode, {type: 'function'}); } function PingWorker(worker, memory) { worker.postMessage({memory: memory}); assertEquals("ack", worker.getMessage()); worker.postMessage({quit: true}); assertEquals("bye", worker.getMessage()); } function AllocMemory() { return new SharedArrayBuffer(1024); } function RunSingleWorkerSingleMemoryTest() { print(arguments.callee.name); let worker = NewWorker(); let first = AllocMemory(); for (let i = 0; i < kNumIterations; i++) { print(`iteration ${i}`); PingWorker(worker, first); gc(); } worker.terminate(); } function RunSingleWorkerTwoMemoryTest() { print(arguments.callee.name); let worker = NewWorker(); let first = AllocMemory(), second = AllocMemory(); for (let i = 0; i < kNumIterations; i++) { print(`iteration ${i}`); PingWorker(worker, first); PingWorker(worker, second); gc(); } worker.terminate(); } function RunSingleWorkerMultipleMemoryTest() { print(arguments.callee.name); let worker = NewWorker(); let first = AllocMemory(); for (let i = 0; i < kNumIterations; i++) { print(`iteration ${i}`); PingWorker(worker, first); PingWorker(worker, AllocMemory()); gc(); } worker.terminate(); } function RunMultipleWorkerMultipleMemoryTest() { print(arguments.callee.name); let first = AllocMemory(); for (let i = 0; i < kNumIterations; i++) { print(`iteration ${i}`); let worker = NewWorker(); PingWorker(worker, first); PingWorker(worker, AllocMemory()); worker.terminate(); gc(); } } RunSingleWorkerSingleMemoryTest(); RunSingleWorkerTwoMemoryTest(); RunSingleWorkerMultipleMemoryTest(); RunMultipleWorkerMultipleMemoryTest();