Initial commit
This commit is contained in:
25
server/node_modules/ssh2/test/test-worker-imports.js
generated
vendored
Normal file
25
server/node_modules/ssh2/test/test-worker-imports.js
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
// Test for thread-safety issues caused by subsequent imports of the module
|
||||
// in worker threads: https://github.com/mscdex/ssh2/issues/1393.
|
||||
// Each subsequent worker increases probability of abnormal termination.
|
||||
// The probability of a false pass due to zero response becomes negligible
|
||||
// for 4 consecutive workers.
|
||||
'use strict';
|
||||
|
||||
let Worker, isMainThread;
|
||||
try {
|
||||
({ Worker, isMainThread } = require('worker_threads'));
|
||||
} catch (e) {
|
||||
if (e.code !== 'MODULE_NOT_FOUND') throw e;
|
||||
process.exit(0);
|
||||
}
|
||||
require('../lib/index.js');
|
||||
|
||||
if (isMainThread) {
|
||||
async function runWorker() {
|
||||
return new Promise((r) => new Worker(__filename).on('exit', r));
|
||||
}
|
||||
runWorker()
|
||||
.then(runWorker)
|
||||
.then(runWorker)
|
||||
.then(runWorker);
|
||||
}
|
||||
Reference in New Issue
Block a user