Updated the files.
This commit is contained in:
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
9
my-app/node_modules/piscina/test/fixtures/console-log.ts
generated
vendored
Executable 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
12
my-app/node_modules/piscina/test/fixtures/esm-async.mjs
generated
vendored
Executable 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
2
my-app/node_modules/piscina/test/fixtures/esm-export.mjs
generated
vendored
Executable 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
14
my-app/node_modules/piscina/test/fixtures/eval-async.js
generated
vendored
Executable 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
2
my-app/node_modules/piscina/test/fixtures/eval.js
generated
vendored
Executable 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
10
my-app/node_modules/piscina/test/fixtures/move.ts
generated
vendored
Executable 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
10
my-app/node_modules/piscina/test/fixtures/multiple.js
generated
vendored
Executable file
|
@ -0,0 +1,10 @@
|
|||
'use strict';
|
||||
|
||||
function a () { return 'a'; }
|
||||
|
||||
function b () { return 'b'; }
|
||||
|
||||
a.a = a;
|
||||
a.b = b;
|
||||
|
||||
module.exports = a;
|
10
my-app/node_modules/piscina/test/fixtures/notify-then-sleep-or.ts
generated
vendored
Executable file
10
my-app/node_modules/piscina/test/fixtures/notify-then-sleep-or.ts
generated
vendored
Executable 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);
|
||||
};
|
5
my-app/node_modules/piscina/test/fixtures/notify-then-sleep.ts
generated
vendored
Executable file
5
my-app/node_modules/piscina/test/fixtures/notify-then-sleep.ts
generated
vendored
Executable file
|
@ -0,0 +1,5 @@
|
|||
module.exports = function (i32array) {
|
||||
Atomics.store(i32array, 0, 1);
|
||||
Atomics.notify(i32array, 0, Infinity);
|
||||
Atomics.wait(i32array, 0, 1);
|
||||
};
|
8
my-app/node_modules/piscina/test/fixtures/resource-limits.js
generated
vendored
Executable file
8
my-app/node_modules/piscina/test/fixtures/resource-limits.js
generated
vendored
Executable file
|
@ -0,0 +1,8 @@
|
|||
'use strict';
|
||||
|
||||
module.exports = () => {
|
||||
const array = [];
|
||||
while (true) {
|
||||
array.push([array]);
|
||||
}
|
||||
};
|
18
my-app/node_modules/piscina/test/fixtures/send-buffer-then-get-length.js
generated
vendored
Executable file
18
my-app/node_modules/piscina/test/fixtures/send-buffer-then-get-length.js
generated
vendored
Executable 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;
|
||||
}
|
||||
};
|
38
my-app/node_modules/piscina/test/fixtures/send-transferrable-then-get-length.js
generated
vendored
Executable file
38
my-app/node_modules/piscina/test/fixtures/send-transferrable-then-get-length.js
generated
vendored
Executable 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;
|
||||
}
|
||||
};
|
6
my-app/node_modules/piscina/test/fixtures/simple-isworkerthread.ts
generated
vendored
Executable file
6
my-app/node_modules/piscina/test/fixtures/simple-isworkerthread.ts
generated
vendored
Executable file
|
@ -0,0 +1,6 @@
|
|||
import Piscina from '../..';
|
||||
import assert from 'assert';
|
||||
|
||||
assert.strictEqual(Piscina.isWorkerThread, true);
|
||||
|
||||
export default function () { return 'done'; }
|
6
my-app/node_modules/piscina/test/fixtures/simple-workerdata.ts
generated
vendored
Executable file
6
my-app/node_modules/piscina/test/fixtures/simple-workerdata.ts
generated
vendored
Executable 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
12
my-app/node_modules/piscina/test/fixtures/sleep.js
generated
vendored
Executable 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;
|
||||
};
|
5
my-app/node_modules/piscina/test/fixtures/wait-for-notify.ts
generated
vendored
Executable file
5
my-app/node_modules/piscina/test/fixtures/wait-for-notify.ts
generated
vendored
Executable 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
11
my-app/node_modules/piscina/test/fixtures/wait-for-others.ts
generated
vendored
Executable 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;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue