Chore: timeout properly

This commit is contained in:
SukkaW 2023-12-31 00:14:36 +08:00
parent 48b3c4538e
commit 6ed3695e36
2 changed files with 48 additions and 48 deletions

View File

@ -141,8 +141,7 @@ export const buildSpeedtestDomainSet = task(import.meta.path, async () => {
} }
} }
let timer; await new Promise<void>((resolve) => {
const pMap = ([ const pMap = ([
'Hong Kong', 'Hong Kong',
'Taiwan', 'Taiwan',
@ -184,22 +183,20 @@ export const buildSpeedtestDomainSet = task(import.meta.path, async () => {
return pMap; return pMap;
}, {}); }, {});
try { const timer = setTimeout(() => {
timer = setTimeout(() => {
console.error(picocolors.red('Task timeout!')); console.error(picocolors.red('Task timeout!'));
Object.entries(pMap).forEach(([name, p]) => { Object.entries(pMap).forEach(([name, p]) => {
console.log(`[${name}]`, Bun.peek.status(p)); console.log(`[${name}]`, Bun.peek.status(p));
}); });
throw new Error('timeout'); resolve();
}, 1000 * 60 * 2); }, 1000 * 60 * 2);
await Promise.all(Object.values(pMap)); Promise.all(Object.values(pMap)).then(() => {
} finally {
if (timer) {
clearTimeout(timer); clearTimeout(timer);
} resolve();
} });
});
const gorhill = await getGorhillPublicSuffixPromise(); const gorhill = await getGorhillPublicSuffixPromise();
const deduped = sortDomains(domainDeduper(Array.from(domains)), gorhill); const deduped = sortDomains(domainDeduper(Array.from(domains)), gorhill);

View File

@ -102,6 +102,9 @@ import type { TaskResult } from './lib/trace-runner';
]); ]);
printStats(stats); printStats(stats);
// Finish the build to avoid leaking timer/fetch ref
process.exit(0);
} catch (e) { } catch (e) {
console.trace(e); console.trace(e);
console.error('Something went wrong!'); console.error('Something went wrong!');