Skip to content
Snippets Groups Projects
Commit e91645c8 authored by Rick Waldron's avatar Rick Waldron
Browse files

Atomics: (bigint) initialize BigInt64Array before calling $262.agent.start(string-of-program-code)

parent 8793bf5d
No related branches found
No related tags found
No related merge requests found
...@@ -22,6 +22,10 @@ const BUFFER_SIZE = 4; ...@@ -22,6 +22,10 @@ const BUFFER_SIZE = 4;
// `Atomics.notify`. // `Atomics.notify`.
const TIMEOUT = $262.agent.timeouts.long; const TIMEOUT = $262.agent.timeouts.long;
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * BUFFER_SIZE)
);
for (var i = 0; i < NUMAGENT; i++) { for (var i = 0; i < NUMAGENT; i++) {
$262.agent.start(` $262.agent.start(`
$262.agent.receiveBroadcast(function(sab) { $262.agent.receiveBroadcast(function(sab) {
...@@ -53,10 +57,6 @@ $262.agent.start(` ...@@ -53,10 +57,6 @@ $262.agent.start(`
}); });
`); `);
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * BUFFER_SIZE)
);
$262.agent.safeBroadcast(i64a); $262.agent.safeBroadcast(i64a);
// Wait for agents to be running. // Wait for agents to be running.
......
...@@ -17,6 +17,10 @@ includes: [atomicsHelper.js] ...@@ -17,6 +17,10 @@ includes: [atomicsHelper.js]
features: [Atomics, BigInt, SharedArrayBuffer, TypedArray] features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
---*/ ---*/
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
);
const RUNNING = 1; const RUNNING = 1;
$262.agent.start(` $262.agent.start(`
...@@ -29,10 +33,6 @@ $262.agent.start(` ...@@ -29,10 +33,6 @@ $262.agent.start(`
}); });
`); `);
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
);
$262.agent.safeBroadcast(i64a); $262.agent.safeBroadcast(i64a);
$262.agent.waitUntil(i64a, RUNNING, 1n); $262.agent.waitUntil(i64a, RUNNING, 1n);
......
...@@ -9,6 +9,10 @@ includes: [atomicsHelper.js] ...@@ -9,6 +9,10 @@ includes: [atomicsHelper.js]
features: [Atomics, BigInt, SharedArrayBuffer, TypedArray] features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
---*/ ---*/
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
);
const RUNNING = 1; const RUNNING = 1;
$262.agent.start(` $262.agent.start(`
...@@ -21,10 +25,6 @@ $262.agent.start(` ...@@ -21,10 +25,6 @@ $262.agent.start(`
}); });
`); `);
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
);
$262.agent.safeBroadcast(i64a); $262.agent.safeBroadcast(i64a);
$262.agent.waitUntil(i64a, RUNNING, 1n); $262.agent.waitUntil(i64a, RUNNING, 1n);
......
...@@ -19,9 +19,12 @@ features: [Atomics, BigInt, SharedArrayBuffer, TypedArray] ...@@ -19,9 +19,12 @@ features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
---*/ ---*/
const RUNNING = 1; const RUNNING = 1;
const value = "42n"; const value = "42n";
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
);
$262.agent.start(` $262.agent.start(`
$262.agent.receiveBroadcast(function(sab) { $262.agent.receiveBroadcast(function(sab) {
const i64a = new BigInt64Array(sab); const i64a = new BigInt64Array(sab);
...@@ -33,10 +36,6 @@ $262.agent.start(` ...@@ -33,10 +36,6 @@ $262.agent.start(`
}); });
`); `);
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
);
// NB: We don't actually explicitly need to wait for the agent to start in this // NB: We don't actually explicitly need to wait for the agent to start in this
// test case, we only do it for consistency with other test cases which do // test case, we only do it for consistency with other test cases which do
// require the main agent to wait and yield control. // require the main agent to wait and yield control.
......
...@@ -25,6 +25,10 @@ features: [Atomics, BigInt, SharedArrayBuffer, TypedArray] ...@@ -25,6 +25,10 @@ features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
var NUMAGENT = 2; var NUMAGENT = 2;
var RUNNING = 4; var RUNNING = 4;
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 5)
);
$262.agent.start(` $262.agent.start(`
$262.agent.receiveBroadcast(function(sab) { $262.agent.receiveBroadcast(function(sab) {
const i64a = new BigInt64Array(sab); const i64a = new BigInt64Array(sab);
...@@ -47,10 +51,6 @@ $262.agent.start(` ...@@ -47,10 +51,6 @@ $262.agent.start(`
}); });
`); `);
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 5)
);
$262.agent.safeBroadcast(i64a); $262.agent.safeBroadcast(i64a);
// Wait until all agents started. // Wait until all agents started.
......
...@@ -16,11 +16,14 @@ includes: [atomicsHelper.js] ...@@ -16,11 +16,14 @@ includes: [atomicsHelper.js]
features: [Atomics, BigInt, SharedArrayBuffer, TypedArray] features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
---*/ ---*/
var NUMAGENT = 3;
var WAIT_INDEX = 0; var WAIT_INDEX = 0;
var RUNNING = 1; var RUNNING = 1;
var LOCK_INDEX = 2; var LOCK_INDEX = 2;
var NUMAGENT = 3;
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
);
for (var i = 0; i < NUMAGENT; i++) { for (var i = 0; i < NUMAGENT; i++) {
var agentNum = i; var agentNum = i;
...@@ -50,10 +53,6 @@ for (var i = 0; i < NUMAGENT; i++) { ...@@ -50,10 +53,6 @@ for (var i = 0; i < NUMAGENT; i++) {
`); `);
} }
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
);
$262.agent.safeBroadcast(i64a); $262.agent.safeBroadcast(i64a);
// Wait until all agents started. // Wait until all agents started.
......
...@@ -25,6 +25,10 @@ features: [Atomics, BigInt, SharedArrayBuffer, TypedArray] ...@@ -25,6 +25,10 @@ features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
const RUNNING = 1; const RUNNING = 1;
const TIMEOUT = $262.agent.timeouts.huge; const TIMEOUT = $262.agent.timeouts.huge;
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
);
$262.agent.start(` $262.agent.start(`
$262.agent.receiveBroadcast(function(sab) { $262.agent.receiveBroadcast(function(sab) {
const i64a = new BigInt64Array(sab); const i64a = new BigInt64Array(sab);
...@@ -40,10 +44,6 @@ $262.agent.start(` ...@@ -40,10 +44,6 @@ $262.agent.start(`
}); });
`); `);
const i64a = new BigInt64Array(
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
);
$262.agent.safeBroadcast(i64a); $262.agent.safeBroadcast(i64a);
$262.agent.waitUntil(i64a, RUNNING, 1n); $262.agent.waitUntil(i64a, RUNNING, 1n);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment