38 lines
646 B
JavaScript
Executable file
38 lines
646 B
JavaScript
Executable file
'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;
|
|
}
|
|
};
|