Don't automatically restart REPL server on crash

This leads to a spinlock that causes #6873
This commit is contained in:
Guangcong Luo
2020-06-25 02:28:23 -07:00
committed by GitHub
parent 8550766299
commit db975b2b39

View File

@@ -54,7 +54,6 @@ export const Repl = new class ReplSingleton {
// TODO: Windows does support the REPL when using named pipes. For now,
// this only supports UNIX sockets.
if (process.platform === 'win32') return;
Repl.setupListeners();
@@ -98,22 +97,22 @@ export const Repl = new class ReplSingleton {
});
server.once('error', (err: NodeJS.ErrnoException) => {
server.close();
if (err.code === "EADDRINUSE") {
fs.unlink(pathname, _err => {
if (_err && _err.code !== "ENOENT") {
crashlogger(_err, `REPL: ${filename}`);
}
server.close();
});
} else if (err.code === "EACCES") {
console.error(`Could not start REPL server "${filename}": Your OS doesn't support Unix sockets (everything else will still work)`);
} else {
crashlogger(err, `REPL: ${filename}`);
server.close();
}
});
server.once('close', () => {
Repl.socketPathnames.delete(pathname);
Repl.start(filename, evalFunction);
});
} catch (err) {
console.error(`Could not start REPL server "${filename}": ${err}`);