Fix test event leak

pull/4360/head
Chocobozzz 2021-08-26 11:11:46 +02:00
parent 91ae3c4a54
commit 706a450fe6
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
1 changed files with 11 additions and 10 deletions

View File

@ -221,11 +221,17 @@ export class PeerTubeServer {
this.app = fork(join(root(), 'dist', 'server.js'), options.peertubeArgs || [], forkOptions)
const onExit = function () {
return rej(new Error('Process exited'))
const onPeerTubeExit = () => rej(new Error('Process exited'))
const onParentExit = () => {
if (!this.app || !this.app.pid) return
try {
process.kill(self.app.pid)
} catch { /* empty */ }
}
this.app.on('exit', onExit)
this.app.on('exit', onPeerTubeExit)
process.on('exit', onParentExit)
this.app.stdout.on('data', function onStdout (data) {
let dontContinue = false
@ -254,16 +260,11 @@ export class PeerTubeServer {
if (options.hideLogs === false) {
console.log(data.toString())
} else {
process.removeListener('exit', onParentExit)
self.app.stdout.removeListener('data', onStdout)
self.app.removeListener('exit', onExit)
self.app.removeListener('exit', onPeerTubeExit)
}
process.on('exit', () => {
try {
process.kill(self.app.pid)
} catch { /* empty */ }
})
res()
})
})