29 lines
785 B
JavaScript
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)
|
|
}
|