Updated the files.

This commit is contained in:
Batuhan Berk Başoğlu 2024-02-08 19:38:41 -05:00
parent 1553e6b971
commit 753967d4f5
23418 changed files with 3784666 additions and 0 deletions

9
my-app/node_modules/piscina/test/fixtures/console-log.ts generated vendored Executable file
View file

@ -0,0 +1,9 @@
import Piscina from '../..';
import { resolve } from 'path';
const pool = new Piscina({
filename: resolve(__dirname, 'eval.js'),
maxThreads: 1
});
pool.runTask('console.log("A"); console.log("B");');

12
my-app/node_modules/piscina/test/fixtures/esm-async.mjs generated vendored Executable file
View file

@ -0,0 +1,12 @@
import util from 'util';
const sleep = util.promisify(setTimeout);
// eslint-disable-next-line no-eval
function handler (code) { return eval(code); }
async function load () {
await sleep(100);
return handler;
}
export default load();

2
my-app/node_modules/piscina/test/fixtures/esm-export.mjs generated vendored Executable file
View file

@ -0,0 +1,2 @@
// eslint-disable-next-line no-eval
export default function (code) { return eval(code); };

14
my-app/node_modules/piscina/test/fixtures/eval-async.js generated vendored Executable file
View file

@ -0,0 +1,14 @@
'use strict';
const { promisify } = require('util');
const sleep = promisify(setTimeout);
// eslint-disable-next-line no-eval
function handler (code) { return eval(code); }
async function load () {
await sleep(100);
return handler;
}
module.exports = load();

2
my-app/node_modules/piscina/test/fixtures/eval.js generated vendored Executable file
View file

@ -0,0 +1,2 @@
// eslint-disable-next-line no-eval
module.exports = function (code) { return eval(code); };

10
my-app/node_modules/piscina/test/fixtures/move.ts generated vendored Executable file
View file

@ -0,0 +1,10 @@
import Piscina from '../..';
import assert from 'assert';
import { types } from 'util';
export default function (moved) {
if (moved !== undefined) {
assert(types.isAnyArrayBuffer(moved));
}
return Piscina.move(new ArrayBuffer(10));
}

10
my-app/node_modules/piscina/test/fixtures/multiple.js generated vendored Executable file
View file

@ -0,0 +1,10 @@
'use strict';
function a () { return 'a'; }
function b () { return 'b'; }
a.a = a;
a.b = b;
module.exports = a;

View file

@ -0,0 +1,10 @@
// Set the index-th bith in i32array[0], then wait for it to be un-set again.
module.exports = function ({ i32array, index }) {
Atomics.or(i32array, 0, 1 << index);
Atomics.notify(i32array, 0, Infinity);
do {
const v = Atomics.load(i32array, 0);
if (!(v & (1 << index))) break;
Atomics.wait(i32array, 0, v);
} while (true);
};

View file

@ -0,0 +1,5 @@
module.exports = function (i32array) {
Atomics.store(i32array, 0, 1);
Atomics.notify(i32array, 0, Infinity);
Atomics.wait(i32array, 0, 1);
};

View file

@ -0,0 +1,8 @@
'use strict';
module.exports = () => {
const array = [];
while (true) {
array.push([array]);
}
};

View file

@ -0,0 +1,18 @@
'use strict';
const Piscina = require('../../dist/src');
let time;
module.exports = {
send: async () => {
const data = new ArrayBuffer(128);
try {
return Piscina.move(data);
} finally {
setTimeout(() => { time = data.byteLength; }, 1000);
}
},
get: () => {
return time;
}
};

View file

@ -0,0 +1,38 @@
'use strict';
const Piscina = require('../../dist/src');
class Shared {
constructor (data) {
this.name = 'shared';
this.data = data;
}
get [Piscina.transferableSymbol] () {
return [this.data];
}
get [Piscina.valueSymbol] () {
return { name: this.name, data: this.data };
}
make () {
return Piscina.move(this);
}
}
let time;
module.exports = {
send: async () => {
const data = new ArrayBuffer(128);
const shared = new Shared(data);
try {
return shared.make();
} finally {
setTimeout(() => { time = data.byteLength; }, 1000);
}
},
get: () => {
return time;
}
};

View file

@ -0,0 +1,6 @@
import Piscina from '../..';
import assert from 'assert';
assert.strictEqual(Piscina.isWorkerThread, true);
export default function () { return 'done'; }

View file

@ -0,0 +1,6 @@
import Piscina from '../..';
import assert from 'assert';
assert.strictEqual(Piscina.workerData, 'ABC');
export default function () { return 'done'; }

12
my-app/node_modules/piscina/test/fixtures/sleep.js generated vendored Executable file
View file

@ -0,0 +1,12 @@
'use strict';
const { promisify } = require('util');
const sleep = promisify(setTimeout);
const buf = new Uint32Array(new SharedArrayBuffer(4));
module.exports = async ({ time = 100, a }) => {
await sleep(time);
const ret = Atomics.exchange(buf, 0, a);
return ret;
};

View file

@ -0,0 +1,5 @@
module.exports = function (i32array) {
Atomics.wait(i32array, 0, 0);
Atomics.store(i32array, 0, -1);
Atomics.notify(i32array, 0, Infinity);
};

11
my-app/node_modules/piscina/test/fixtures/wait-for-others.ts generated vendored Executable file
View file

@ -0,0 +1,11 @@
import { threadId } from 'worker_threads';
module.exports = async function ([i32array, n]) {
Atomics.add(i32array, 0, 1);
Atomics.notify(i32array, 0, Infinity);
let lastSeenValue;
while ((lastSeenValue = Atomics.load(i32array, 0)) < n) {
Atomics.wait(i32array, 0, lastSeenValue);
}
return threadId;
};