Files
bare-operating-system/packages/bare-os-openssh/vendor/bare-ssh2/test/test-worker-imports.js
T

29 lines
785 B
JavaScript

// 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'
try {
require('bare-process/global')
} catch {
/* Node.js */
}
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)
}