From 88e6e1e84e3f80614d85452c4fca951d5702f0fc Mon Sep 17 00:00:00 2001 From: Vanessa Date: Thu, 5 Jan 2023 21:53:31 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=94=B9=E8=BF=9B=E6=A1=8C=E9=9D=A2?= =?UTF-8?q?=E7=AB=AF=E6=8B=89=E8=B5=B7=E5=86=85=E6=A0=B8=20Fix=20https://g?= =?UTF-8?q?ithub.com/siyuan-note/siyuan/issues/6996?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/electron/main.js | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/app/electron/main.js b/app/electron/main.js index a793a07ba..2b44de29b 100644 --- a/app/electron/main.js +++ b/app/electron/main.js @@ -388,34 +388,22 @@ const initKernel = (workspace, lang) => { if (!isDevEnv) { writeLog('got kernel port [' + kernelPort + ']') } else { - const getAvailablePort = (port) => { - if (!port) { - port = 6806 - } + const getAvailablePort = () => { // https://gist.github.com/mikeal/1840641 - return new Promise((resolve, reject) => { - let tryGetPortCount = 0 + return new Promise((portResolve, portReject) => { const server = net.createServer() server.on('error', error => { writeLog(error) - if (2048 < ++tryGetPortCount) { - writeLog( - `failed to get available port [tryCount=${tryGetPortCount}, port=${port}]`) - reject() - return - } - console.log("getAvailablePort error", port) - server.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) + kernelPort = "" + portReject() + }) + server.listen(0, () => { + kernelPort = server.address().port + server.close(() => portResolve(kernelPort)) + }); }) } - console.log("before", kernelPort) - kernelPort = await getAvailablePort(kernelPort) - console.log("after", kernelPort) + await getAvailablePort() } writeLog('got kernel port [' + kernelPort + ']') if (!kernelPort) {