This commit is contained in:
Vanessa 2023-01-05 21:26:22 +08:00
parent 67da6b6369
commit ccfa53abe2

View file

@ -393,22 +393,29 @@ const initKernel = (workspace, lang) => {
port = 6806 port = 6806
} }
// https://gist.github.com/mikeal/1840641 // https://gist.github.com/mikeal/1840641
let tryGetPortCount = 0 return new Promise((resolve, reject) => {
const server = net.createServer() let tryGetPortCount = 0
return new Promise((resolve, reject) => server.on('error', error => { const server = net.createServer()
writeLog(error) server.on('error', error => {
if (2048 < ++tryGetPortCount) { writeLog(error)
writeLog( if (2048 < ++tryGetPortCount) {
`failed to get available port [tryCount=${tryGetPortCount}, port=${port}]`) writeLog(
reject() `failed to get available port [tryCount=${tryGetPortCount}, port=${port}]`)
return reject()
} return
server.listen(++port, '127.0.0.1') }
}).on('listening', () => { console.log("getAvailablePort error", port)
server.close(() => resolve(port)) server.listen(++port, "127.0.0.1")
}).listen(port, '127.0.0.1')) }).on('listening', () => {
console.log("getAvailablePort listening", port)
server.close(() => resolve(port))
}).listen(port, "127.0.0.1")
console.log("getAvailablePort", port)
})
} }
console.log("before", kernelPort)
kernelPort = await getAvailablePort(kernelPort) kernelPort = await getAvailablePort(kernelPort)
console.log("after", kernelPort)
} }
writeLog('got kernel port [' + kernelPort + ']') writeLog('got kernel port [' + kernelPort + ']')
if (!kernelPort) { if (!kernelPort) {