From bd8a403dbce8e617e26546446f4c91888016f75e Mon Sep 17 00:00:00 2001 From: Sam Verschueren Date: Sun, 4 Jun 2023 14:46:14 +0200 Subject: [PATCH] Use timeout instead of interval for releasing ports (#68) --- index.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/index.js b/index.js index 06e993a..cbea1b0 100644 --- a/index.js +++ b/index.js @@ -20,8 +20,8 @@ const releaseOldLockedPortsIntervalMs = 1000 * 15; const minPort = 1024; const maxPort = 65_535; -// Lazily create interval on first use -let interval; +// Lazily create timeout on first use +let timeout; const getLocalHosts = () => { const interfaces = os.networkInterfaces(); @@ -109,15 +109,17 @@ export default async function getPorts(options) { } } - if (interval === undefined) { - interval = setInterval(() => { + if (timeout === undefined) { + timeout = setTimeout(() => { + timeout = undefined; + lockedPorts.old = lockedPorts.young; lockedPorts.young = new Set(); }, releaseOldLockedPortsIntervalMs); // Does not exist in some environments (Electron, Jest jsdom env, browser, etc). - if (interval.unref) { - interval.unref(); + if (timeout.unref) { + timeout.unref(); } }