v8/test/mjsunit/regress/regress-1212404.js
Shu-yu Guo da45d855de Fix data races in TypedArray fill and reverse
Bug: chromium:1217573
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
Change-Id: Ida9cabc4f46f0ad4f35e2b97f5803cc7c30fb972
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2947857
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75058}
2021-06-09 18:38:18 +00:00

20 lines
686 B
JavaScript

// Copyright 2021 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.
const barrier_arr = new Int32Array(new SharedArrayBuffer(4));
function onmessage([data_arr, barrier_arr]) {
Atomics.store(barrier_arr, 0, 1);
for (let nr = 1; nr < 1000; ++nr) {
for (let idx = 0; idx < data_arr.length; ++idx) {
data_arr[idx] = nr;
}
}
}
const worker = new Worker(`onmessage = ${onmessage}`, {type: 'string'});
const data_arr = new Int32Array(new SharedArrayBuffer(1024));
worker.postMessage([data_arr, barrier_arr]);
while (Atomics.load(barrier_arr) == 0) { }
data_arr.reverse();