Fix: do not attempt to terminate a worker

This commit is contained in:
SukkaW 2023-11-19 15:23:01 +08:00
parent 179918dceb
commit 5ea91fa9a4
2 changed files with 21 additions and 11 deletions

View File

@ -22,6 +22,8 @@ import { TaskResult } from './lib/trace-runner';
console.log('Bun version:', Bun.version); console.log('Bun version:', Bun.version);
try { try {
const buildInternalReverseChnCIDRWorker = new Worker(new URL('./workers/build-internal-reverse-chn-cidr-worker.ts', import.meta.url));
const downloadPreviousBuildPromise = downloadPreviousBuild(); const downloadPreviousBuildPromise = downloadPreviousBuild();
const downloadPublicSuffixListPromise = downloadPublicSuffixList(); const downloadPublicSuffixListPromise = downloadPublicSuffixList();
const buildCommonPromise = downloadPreviousBuildPromise.then(() => buildCommon()); const buildCommonPromise = downloadPreviousBuildPromise.then(() => buildCommon());
@ -50,14 +52,15 @@ import { TaskResult } from './lib/trace-runner';
]).then(() => buildInternalCDNDomains()); ]).then(() => buildInternalCDNDomains());
const buildInternalReverseChnCIDRPromise = new Promise<TaskResult>(resolve => { const buildInternalReverseChnCIDRPromise = new Promise<TaskResult>(resolve => {
const buildInternalReverseChnCIDRWorker = new Worker(new URL('./workers/build-internal-reverse-chn-cidr-worker.ts', import.meta.url));
const handleMessage = (e: MessageEvent<TaskResult>) => { const handleMessage = (e: MessageEvent<TaskResult>) => {
buildInternalReverseChnCIDRWorker.terminate(); buildInternalReverseChnCIDRWorker.unref();
resolve(e.data); const { data } = e;
}
buildInternalReverseChnCIDRWorker.addEventListener('message', handleMessage); buildInternalReverseChnCIDRWorker.postMessage('exit');
resolve(data);
};
buildInternalReverseChnCIDRWorker.addEventListener('message', handleMessage, { once: true });
buildInternalReverseChnCIDRWorker.postMessage('build');
}); });
const buildInternalChnDomainsPromise = buildInternalChnDomains(); const buildInternalChnDomainsPromise = buildInternalChnDomains();
@ -94,6 +97,7 @@ import { TaskResult } from './lib/trace-runner';
printStats(stats); printStats(stats);
} catch (e) { } catch (e) {
console.error(e); console.error(e);
console.error('Something went wrong!')
} }
})(); })();

View File

@ -1,5 +1,11 @@
(async () => { declare const self: Worker;
self.addEventListener('message', async (e: MessageEvent<'build' | 'exit'>) => {
if (e.data === 'build') {
const { buildInternalReverseChnCIDR } = await import('../build-internal-reverse-chn-cidr'); const { buildInternalReverseChnCIDR } = await import('../build-internal-reverse-chn-cidr');
const stat = await buildInternalReverseChnCIDR(); const stat = await buildInternalReverseChnCIDR();
postMessage(stat); postMessage(stat);
})(); } else if (e.data === 'exit') {
process.exit(0);
}
}, { once: true });